Swift AnyObject kann nicht in String / Int konvertiert werden
Ich möchte ein JSON-Objekt analysieren, habe aber keine Ahnung, wie ich AnyObject in String oder Int umwandeln soll, da ich Folgendes erhalte:
0x106bf1d07: leaq 0x33130(%rip), %rax ; "Swift dynamic cast failure"
Wenn Sie zum Beispiel verwenden:
self.id = reminderJSON["id"] as Int
Ich habe die ResponseParser-Klasse und darin (responseReminders ist ein Array von AnyObjects von AFNetworking responseObject):
for reminder in responseReminders {
let newReminder = Reminder(reminderJSON: reminder)
...
}
Dann initialisiere ich es in der Reminder-Klasse wie folgt (Reminder als AnyObject, aber Dictionary (String, AnyObject)):
var id: Int
var receiver: String
init(reminderJSON: AnyObject) {
self.id = reminderJSON["id"] as Int
self.receiver = reminderJSON["send_reminder_to"] as String
}
println(reminderJSON["id"])
Ergebnis ist: Optional (3065522)
Wie kann ich in einem solchen Fall AnyObject auf String oder Int downcasten?
//BEARBEITEN
Nach einigen Versuchen komme ich mit dieser Lösung:
if let id: AnyObject = reminderJSON["id"] {
self.id = Int(id as NSNumber)
}
für Int und
if let tempReceiver: AnyObject = reminderJSON["send_reminder_to"] {
self.id = "\(tempReceiver)"
}
für string