2016-10-17 9 views
-1

이것은 실제로이 질문에 대한 후속 조치입니다. how can I convert NSArray into specific String? Bryan의 대답은 Swift의 이전 버전에서 저에게 도움이되었지만 지금은 이동할 때 Swift 3,이 코드 :Swift3으로 전환 한 후 : NSFastEnumerationIterator.Element (별칭 Any)에 아래 첨자가 없습니다.

if (defaults.object(forKey: "fb_friends") != nil) { 
    var friends = (defaults.objectForKey("fb_friends") as! NSMutableArray) 
        .map{$0["id"]!!} 
        .joinWithSeparator(",") 
       friends+=",\(defaults.stringForKey("facebookId")!)" 
       params["friends"] = friends 
      } 

특히이 라인 .map{$0["id"]!!} 나에게 오류 발생 :

Type NSFastEnumerationIterator.Element (aka Any) has no subscript members 

여기에 문제가 무엇인지를?

답변

1

오류 메시지가 더 이상이 경우

스위프트 3에 Any에서 첨자 멤버에 액세스 할 수있는 명확하지 않습니다, 당신은 NSDictionary에 캐스팅 할 수 있습니다.

var friends = (defaults.objectForKey("fb_friends") as! NSArray) 
    .map{($0 as! NSDictionary)["id"] as! String} 
    .joined(separator: ",")