字典无法从 Objective-C 桥接 -> Swift 中的问题
Dictionary cannot be bridged from Objective-C -> Issues in Swift
我一直在将一些 objective-c 代码移植到 swift 中,我正在尝试将结果集作为字典,然后将每个字典(相当于数据库中的一行)打包到数组。但是我收到此错误消息 "Dictionary cannot be bridged from Objective-C"。我已经从 apple 阅读了 this,但我仍然没有找到解决方案。有任何想法吗?谢谢
这是错误所在的行:
resultsArray.append(resultSet!.resultDictionary() as Dictionary<String,String>)
来自很棒的 robertmryan 为方便起见转载于此:
如果您的数据库有空值(return [NSNull null]
对象)或数值(return 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])
我一直在将一些 objective-c 代码移植到 swift 中,我正在尝试将结果集作为字典,然后将每个字典(相当于数据库中的一行)打包到数组。但是我收到此错误消息 "Dictionary cannot be bridged from Objective-C"。我已经从 apple 阅读了 this,但我仍然没有找到解决方案。有任何想法吗?谢谢
这是错误所在的行:
resultsArray.append(resultSet!.resultDictionary() as Dictionary<String,String>)
来自很棒的 robertmryan 为方便起见转载于此:
如果您的数据库有空值(return [NSNull null]
对象)或数值(return 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])