我有一个由对象NSCountedSet
组成的String
对象,如果我遍历集合并将其打印出来,我会看到如下内容:
for item in countedSet {
print(item)
}
Optional(One)
Optional(Two)
countedSet 是从一个对象创建Array
的:String
let countedSet = NSCountedSet(array: countedArray)
如果我打印数组,我会看到如下内容:
["Optional(One)", "Optional(One)", "Optional(One)", "Optional(Two)", "Optional(Two)"]
现在,我想使用这些计数字符串来访问 a 中的数据Dictionary
,其中键是String
type ,值是 type [String : AnyObject]
。如果我打印字典,我会看到所有数据。
但是,如果我使用 countedSet 中的对象来访问字典,我总是会得到一个 nil 值:
for item in countedSet {
let key = item as? String
let data = dictionary[key!] // Xcode forced me to unwrap key
print(data)
}
nil
nil
但
let key = "One"
let data = dictionary[key]
给了我预期的数据。
我在这里缺少什么,如何从 countedSet 对象访问我的数据?
更新:感谢 Martin R 的评论解决了。这些String
对象最初是NSString
对象(从 获得NSScanner
),我错误地投射它们:
let string = String(originalString)
在我将其更改为:
let string = (originalString as! String)
一切正常。