Ich habe mehrere Beiträge here und here gelesen und ich verstehe das "warum". Keiner der Vorschläge in diesen Posts funktionierte für mich, aber die Umwandlung tat Schritt für Schritt. Das fühlt sich an wie ein Hack für mich und ich vermisse etwas.CoreData NSNumber zu Int32
Ich habe das letzte Bit des Codes hier aufgenommen.
Mein Szenario:
- Schritt 1: Shop Coredata-Objekt als Primitive Int32 (nicht im Code dargestellt)
- Schritt 2: Fetch NSNumber Objekt (Es werden nur die benötigten Code)
- Schritt 3: NSNumber Int
Schritt 4: Guss Int
var finalQTY:Int32 //Step 2 if let retQTY = managedObject.valueForKey("totQty") as? NSNumber { //Step 3 let preQTY = retQTY as Int //Step 4 finalQTY = Int32(preQTY) }
Gibt es einen besseren Weg? Ich fühle mich, als würde ich etwas verpassen? (Verwendung von Int ist keine Option wegen der Größe der beteiligten Zahlen. Ich habe hier QTY verwendet, aber das war nur als Beispiel). Ihr Feedback und Ihre Antworten werden sehr geschätzt, wenn ich weiterhin Swift lerne.
Warum funktioniert der Vorschlag "Skalare Eigenschaften für primitive Datentypen verwenden" von http://stackoverflow.com/a/29447590/1187415 nicht für Sie? –
Es funktioniert, wenn ich meinen Datentyp in Int ändern. Aber da ich Int32 wegen der Größe der Variablen brauche und es kein Bridging zwischen NSNumber und Int32 gibt, schlägt es fehl und ich bekomme Fehlermeldungen. Danke für das Betrachten meiner Frage. Meine Lösung funktioniert, es hat sich einfach angefühlt. Ich werde dies als gelöst markieren und weitermachen. :-) –