【发布时间】:2014-10-10 14:44:24
【问题描述】:
我正在尝试使用 Swift,但遇到了一个让我有些困惑的问题。给定一个整数索引,我试图获取 Dictionary 的相应键并返回与之关联的值。
以如下结构为例:
Class CustomClass {
private var collection: [String: [SifterIssue]] = ["MyStringKey": [MyCustomCollectionClass]()]
/* ... */
}
我尝试这样解决问题:
var keys = Array(self.collection.keys)
var key: String = keys[section] as String
return self.collection[key].count // error is flagged here
但发现这会导致编译器错误,指出 'String' 不能转换为 'DictionaryIndex'。难住了,我尝试了一个稍微冗长的解决方案,并惊讶地发现它编译并没有问题。
var keys = Array(self.collection.keys)
var key: String = keys[section] as String
var collection: [MyCustomCollectionClass] = self.collection[key]! as [MyCustomCollectionClass]
return issues.count
谁能向我解释为什么第一个解决方案拒绝编译?
【问题讨论】:
-
self.collection[key]是可选的[SifterIssue]?,请尝试在[key]之后使用?或!。
标签: arrays dictionary collections swift