这实际上是对这个问题的跟进:how can I convert NSArray into specific String? Bryan的回答在我之前版本的Swift中对我有用,但现在当我转到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
引发了一个错误:
ctx
这可能是什么问题?
答案 0 :(得分:1)
错误消息很明显,您无法再从Swift 3中的Any
访问下标成员。
在这种情况下,您可以将其投射到NSDictionary
。
var friends = (defaults.objectForKey("fb_friends") as! NSArray)
.map{($0 as! NSDictionary)["id"] as! String}
.joined(separator: ",")