我在Objective-C中使用Swift混合项目,并且在尝试检索我知道是字符串的对象时看到以下错误消息:" AnyObject"与" String"不同。
我真的不想每次都明确指出我从收藏中走出来的东西。 如何压制像这样的编译器错误,让我使用像Objective-C id类型这样的任何对象?
答案 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) ?? ""
}