类型 Any 没有下标成员 Swift 3.0 中的错误?

Posted

技术标签:

【中文标题】类型 Any 没有下标成员 Swift 3.0 中的错误?【英文标题】:Type Any has no subscript members Error in Swift 3.0? 【发布时间】:2016-09-18 03:38:56 【问题描述】:

我正在关注这个tutorial here...

我遇到的问题是我不断收到错误消息。

“Type Any 没有下标成员错误”在这个函数中...

func allItems() -> [TodoItem] 
let todoDictionary = NSUserDefaults.standardUserDefaults().dictionaryForKey(ITEMS_KEY) ?? [:]
let items = Array(todoDictionary.values)
return items.map(TodoItem(deadline: $0["deadline"] as! NSDate, title: $0["title"] as! String, UUID: $0["UUID"] as! String!)).sort((left: TodoItem, right:TodoItem) -> Bool in
        (left.deadline.compare(right.deadline) == .OrderedAscending)

此行正在生成错误...

return items.map(TodoItem(deadline: $0["deadline"] as! NSDate, title: $0["title"] as! String, UUID: $0["UUID"] as! String!)).sort((left: TodoItem, right:TodoItem) -> Bool in
        (left.deadline.compare(right.deadline) == .OrderedAscending)

我完全被难住了。

任何帮助将不胜感激!谢谢!

【问题讨论】:

Parsing JSON using Swift 3的可能重复 比较***.com/questions/39549107/… 【参考方案1】:

您需要明确指定项目对象的类型为[[String:Any]]

let items = Array(todoDictionary.values) as! [[String: Any]]

【讨论】:

成功了!感谢您让我知道问题所在。

以上是关于类型 Any 没有下标成员 Swift 3.0 中的错误?的主要内容,如果未能解决你的问题,请参考以下文章

类型“Any”没有下标成员/Swift 3 [重复]

类型'Any'没有下标成员Swift 3

Swift 3 - 类型'Any'没有下标成员

Swift:将 oldArray[][] 复制到 newArray[][] 会导致错误(类型 'Any' 没有下标成员)

类型“any”在alamofire 4 iOS swift中没有下标成员[重复]

swift 3 Type 'Any' 没有下标成员? [复制]