Swift: Beliebiges Objekt in Int64 = nil @ umwande
Ich habe eine Frage. Ich habe mich gefragt, warum das passiert ist?
var dict : [String : Any] = ["intValue": 1234, "stringValue" : "some text"]
dict["intValue"] as? Int64 // = nil (why)
dict["intValue"] as? Int // = 1234
kann mir jemand sagen, warum die Besetzung von Int64 nil zurückgibt?
Bearbeiteter Teil:
Ich habe meine Frage vereinfacht, aber ich denke, das war keine gute Idee. :)
In meinem speziellen Fall erhalte ich ein Wörterbuch aus einem Nachrichtentext von WKScriptMessage zurück.
ch weiß, dass es in einem Feld des Dictionary einen Int-Wert gibt, der größer als Int32 sein kan
Wenn ich diesen Wert auf Int umsetze, funktioniert er auf 64-Bit-Systemen. Aber was ist auf 32-Bit-Systemen passiert? Ich denke hier ist ein Integer-Überlauf oder?
Muss ich beide prüfen, um beide Systeme zu unterstützen? Etwas wie das
func handleData(dict: [String : AnyObject]) {
val value: Int64?
if let int64Value = dict["intValue"] as? Int64 {
value = int64Value
} else if let intValue = dict["intValue"] as? Int {
value = intValue
}
//do what ever i want with the value :)
}