类型 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 中的错误?的主要内容,如果未能解决你的问题,请参考以下文章
Swift:将 oldArray[][] 复制到 newArray[][] 会导致错误(类型 'Any' 没有下标成员)