【问题标题】:Type Any has no subscript members Error in Swift 3.0?类型 Any 没有下标成员 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)}

我完全被难住了。

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

【问题讨论】:

标签: arrays swift dictionary swift3


【解决方案1】:

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

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

【讨论】:

  • 成功了!感谢您让我知道问题所在。
猜你喜欢
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多