2016-10-17 13 views
-1

Это на самом деле следующий вопрос: how can I convert NSArray into specific String? Ответ Брайана работал на меня в предыдущей версии Swift, но теперь, когда я перешел на Swift 3, этот код:После переключения на Swift3 у меня есть: Тип NSFastEnumerationIterator.Element (aka 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

Сообщения об ошибке не ясно, что вы больше не можете получить доступ к подстрочным членам из Any в Swift 3.

В этом случае, вы можете привести его к NSDictionary.

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