我有一个NSCountedSet
由String
个对象组成,如果我遍历该集并将其打印出来,我会看到类似这样的内容:
for item in countedSet {
print(item)
}
Optional(One)
Optional(Two)
countsSet是从Array
个String
个对象创建的:
let countedSet = NSCountedSet(array: countedArray)
如果我打印数组,我会看到类似的内容:
["Optional(One)", "Optional(One)", "Optional(One)", "Optional(Two)", "Optional(Two)"]
现在,我想使用这些计数字符串来访问Dictionary
中的数据,其中键为String
类型,值的类型为[String : AnyObject]
。如果我打印字典,我会看到所有数据。
但是,如果我使用countsSet中的对象来访问字典,我总是得到一个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]
给了我预期的数据。
我在这里缺少什么,如何从countsSet对象访问我的数据?
更新:感谢Martin R.的评论。String
对象最初是NSString
个对象(从NSScanner
获得),我正在投他们错了:
let string = String(originalString)
我把它改成后:
let string = (originalString as! String)
一切正常。