我一直在将一些 objective-c 代码移植到 swift 中,我试图将结果集作为一个字典,然后将每个字典(相当于数据库中的一行)打包到一个数组中。但我收到此错误消息“无法从 Objective-C 桥接字典”。我读过this来自苹果,但我仍然没有进一步解决问题。有任何想法吗?谢谢。
这是错误所在的行:
resultsArray.append(resultSet!.resultDictionary() as Dictionary<String,String>)
最佳答案
来自很棒的 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])
关于swift - 字典无法从 Objective-C 桥接 -> Swift 中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28425175/