Nate Uni
Nate Uni

Reputation: 943

Dictionary cannot be bridged from Objective-C -> Issues in Swift

I have been porting some objective-c code over into swift and I am trying to get the result set as a dictionary and then pack each dictionary (equivalent to a row from the db) into an array. But I am getting this error message "Dictionary cannot be bridged from Objective-C". I have read this from apple but still I am no further along towards a solution. Any ideas? Thanks.

This is the line where the error is:

resultsArray.append(resultSet!.resultDictionary() as Dictionary<String,String>)

Upvotes: 4

Views: 2377

Answers (1)

Nate Uni
Nate Uni

Reputation: 943

From the awesome robertmryan reposted here for convenience:

This will happen if your database has an null values (which return [NSNull null] objects) or numeric values (which return NSNumber objects). You can fix this by defining resultsArray as:

var resultsArray = Array<Dictionary<String,AnyObject>>()

Or, I personally prefer:

var resultsArray = [[String: AnyObject]]()

And then when adding objects, I'd

resultsArray.append(resultSet!.resultDictionary() as Dictionary<String, AnyObject>)

or

resultsArray.append(resultSet!.resultDictionary() as [String: AnyObject])

Upvotes: 4

Related Questions