Я хочу разобрать JSON для объекта, но я понятия не имею, как отличать AnyObject до String или Int, поскольку я получаю:
0x106bf1d07: leaq 0x33130(%rip), %rax ; "Swift dynamic cast failure"
При использовании, например:
self.id = reminderJSON["id"] as Int
У меня есть класс ResponseParser и внутри него (responseReminders - это массив AnyObjects, из AFOetworking responseObject):
for reminder in responseReminders {
let newReminder = Reminder(reminderJSON: reminder)
...
}
Затем в классе Reminder я инициализирую его как это (напоминание как AnyObject, но это словарь (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"])
результат: Необязательный (3065522)
Как я могу опустить AnyObject в String или Int в таком случае?
//EDIT
После некоторых попыток я прихожу с этим решением:
if let id: AnyObject = reminderJSON["id"] {
self.id = Int(id as NSNumber)
}
для Int и
if let tempReceiver: AnyObject = reminderJSON["send_reminder_to"] {
self.id = "\(tempReceiver)"
}
для строки