我一直在将一些Objective-c代码移植到swift中,我试图将结果集作为字典,然后将每个字典(相当于db中的一行)打包成一个数组。但我收到此错误消息“字典无法从Objective-C桥接”。我从苹果那里读过this,但我仍然没有进一步解决问题。有任何想法吗?感谢。
这是错误行:
resultsArray.append(resultSet!.resultDictionary() as Dictionary<String,String>)
答案 0 :(得分:4)
从方便的 robertmryan 转发到这里:
如果您的数据库具有空值(返回[NSNull null]
个对象)或数值(返回NSNumber
个对象),则会发生这种情况。您可以通过将resultsArray
定义为:
var resultsArray = Array<Dictionary<String,AnyObject>>()
或者,我个人更喜欢:
var resultsArray = [[String: AnyObject]]()
然后在添加对象时,我就
resultsArray.append(resultSet!.resultDictionary() as Dictionary<String, AnyObject>)
或
resultsArray.append(resultSet!.resultDictionary() as [String: AnyObject])