У меня есть модель CoreData с 2 объектами. Первый объект (Изображения) содержит список имен изображений. Второй объект (Book) связан с полем из объекта Images с именем imageId. Тип данных установлен в int16 и помечен как необязательный со значением по умолчанию 0, поскольку не у каждой книги будет изображение.
Я запрашиваю JSON-представление объекта Book из службы WCF. Один из возвращенных объектов книги имеет значение ImageId: null. Поэтому при преобразовании объекта JSON в управляемый объект в Objective-C я получаю следующее сообщение об ошибке:
Недопустимый тип значения для атрибута: property = "imageId"; желаемый тип = NSNumber; данный тип = NSNull; значение =
Как вы справляетесь с этим преобразованием? Я думал о проверке на нулевое значение, а затем установил значение 0, но это кажется неправильным.
Большое спасибо.
* ОБНОВЛЕНИЕ *
В процессе реализации решения Daniels я обнаружил, что другие поля также могут быть возвращены из службы как нулевые. Следовательно, возможно ли изменить категорию NSDictionary, чтобы она могла обходить себя и заменять любой экземпляр на nil? Я использую jsonKit в качестве парсера JSON, и он, похоже, возвращает проанализированный результат как NSMutableDictionary с объектами NSDictionary, представляющими мои объекты JSON. Я потратил большую часть дня, пытаясь изменить мои объекты, но так как они возвращаются как NSDictionaries, они неизменны. Я мог бы просто использовать решение Daniels для каждого поля, для которого требовалась проверка, однако, изменился ли сервис и было ли возвращено другое поле, так как это сломало бы мое приложение. В качестве альтернативы я мог бы внедрить решение Daniels в каждой области, только если это было когда-либо, но не уверен, что это хорошее решение, особенно для производительности.