Swift 2.1 Xcode 7.1 Alamofire 2.0.2Swift: Не удалось бросить значение типа «» NSNull с использованием NSObjects «NSDictionary»
С помощью функции Alamofire я описал ниже Я получение списка листовок в формат JSON с API:
Alamofire.request(Router.GetList()).responseJSON { (_, _, result) in
var flyers = [Flyer]()
switch result {
case .Success(let json):
if let responseObject = json as? [String: AnyObject], let hits = responseObject["hits"] as? [[String: AnyObject]] {
print(hits)
for dictionary in hits {
flyers.append(Flyer(dictionary: dictionary))
}
completionHandler(flyers, nil)
}
case .Failure(_, let error):
completionHandler(nil, error as NSError)
}
}
ответ JSON в результате печатающих (хитов) является:
[["title": Code 103,
"event": {
"_id" = 54b0561f274441073751;
name = "Code 103";
}
],
["title": Code 104,
"event": {
"_id" = 54b0561f274441073752;
name = "Code 104";
}
]]
, как вы можете увидеть ниже, класс Flyer имеет свойство ("событие"), который ссылки два пропе rties из класса Event, id and name
:
class Flyer: NSObject{
var title: String?
var event: Event?
init(dictionary: [String: AnyObject]) {
title = dictionary["title"] as? String
event = Event(dictionary: dictionary["event"] as! [String: AnyObject])
}
}
class Event: NSObject{
var id: String?
var name: String?
init(dictionary: [String: AnyObject]){
id = dictionary["id"] as? String
name = dictionary["name"] as? String
}
}
Im получаю следующую ошибку:
Could not cast value of type 'NSNull' (0x107d50378) to 'NSDictionary' (0x107d4fd60).
эта ошибка находится в классе Flyer в строке:
event = Event(dictionary: dictionary["event"] as! [String: AnyObject])
И я дону Не знаю, что я могу сделать, чтобы решить эту проблему, потому что ответ не равен нулю. Ценить помощь
Похоже, что значение для ключа 'event' может быть' nil', которое представлено объектом 'NSNull'. Отфильтруйте эти случаи и обработайте их соответствующим образом. – vadian