Próbuję przekonwertować [String : String]
(SWIFT Dictionary) do NSDictionary
, do późniejszego wykorzystania w bibliotece JSON, który wytwarza ciągJak przekonwertować szybkiego Dictionary do NSDictionary
var parcelDict = ["trackingNumber" : parcel.number,
"dstCountry" : parcel.countryCode];
if (parcel.postalService != nil)
{
parcelDict["postalService"] = parcel.postalService;
}
var errorPtr: NSErrorPointer
let dict: NSDictionary = parcelDict
var data = NSJSONSerialization.dataWithJSONObject(dict, options:0, error: errorPtr) as NSData
return NSString(data: data, encoding: NSUTF8StringEncoding)
ale let dict: NSDictionary = parcelDict
nie działa
let dict: NSDictionary = parcelDict as NSDictionary
var data = NSJSONSerialization.dataWithJSONObject(parcelDict as NSMutableDictionary, options:0, error: errorPtr) as NSData
Wszystkie te przykłady nie działają. Wytwarzają one następujące błędy:
Co to jest poprawny sposób to zrobić?
Aktualizacja:
kod, który działa
var parcelDict = ["trackingNumber" : parcel.number!,
"dstCountry" : parcel.countryCode!];
if (parcel.postalService != nil) {
parcelDict["postalService"] = parcel.postalService;
}
var jsonError : NSError?
let dict = parcelDict as NSDictionary
var data = NSJSONSerialization.dataWithJSONObject(dict, options:nil, error: &jsonError)
return NSString(data: data!, encoding: NSUTF8StringEncoding)!
Twój słownik nie jest [String: String] a [String: String?] – Arbitur
Nie ma potrzeby posiadania opcjonalnej wartości w słowniku, chyba że nadal chcesz mieć klucz, który nie ma nic wspólnego . – Arbitur
Moja sugestia jest po prostu zmienić wartość na ciąg zamiast ciągu? – Arbitur