Ich versuche, eine [String : String]
(ein Swift Dictionary) zu NSDictionary
, für die spätere Verwendung auf einer JSON-Bibliothek zu konvertieren, die einen StringWie kann ich swift Wörterbuch zu NSDictionary konvertieren
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)
aber let dict: NSDictionary = parcelDict
funktioniert nicht produziert
let dict: NSDictionary = parcelDict as NSDictionary
var data = NSJSONSerialization.dataWithJSONObject(parcelDict as NSMutableDictionary, options:0, error: errorPtr) as NSData
Alle diese Beispiele funktionieren nicht. Sie produzieren die folgenden Fehler:
Was ist der richtige Weg, es zu tun?
Update:
Code, der
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)!
Ihr Wörterbuch ist kein [String: Zeichenkette] its a [Zeichenkette: Zeichenkette?] – Arbitur
Es ist nicht wirklich notwendig, einen optionalen Wert in einem Dictionary zu haben, es sei denn, Sie möchten immer noch den Schlüssel haben, der auf nichts verweist . – Arbitur
Mein Vorschlag ist, ändern Sie einfach den Wert in String statt String? – Arbitur