尝试访问字典时,iOS8 Swift“AnyObject”与“String”错误不同 - 如何抑制?

时间:2014-08-15 20:08:05

标签: collections casting compiler-errors swift ios8

我在Objective-C中使用Swift混合项目,并且在尝试检索我知道是字符串的对象时看到以下错误消息:" AnyObject"与" String"不同。

我真的不想每次都明确指出我从收藏中走出来的东西。 如何压制像这样的编译器错误,让我使用像Objective-C id类型这样的任何对象?

enter image description here

1 个答案:

答案 0 :(得分:6)

let dict = (dataSource.array[indexPath.row]) as NSDictionary
cell.titleLabel.text = dict.objectForKey("done")! as String

修改

更安全的解决方案是检查是否可以将对象从字典转换为字符串

if let dict = dataSource.array[indexPath.row] as? NSDictionary {
    cell.titleLabel.text = (dict.objectForKey("done") as? String) ?? ""
}