4

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>)
Nate Uni
  • 933
  • 1
  • 12
  • 26

1 Answers1

4

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])
Rob
  • 415,655
  • 72
  • 787
  • 1,044
Nate Uni
  • 933
  • 1
  • 12
  • 26