2013-11-01 3 views
1

Мне нужно создать JSON данных POST и получить исключение.NSJSONSerialization не анализирует NSManagedObject

Это словарь с ключом «записи», который содержит массив NSManagedObjects.

Кажется, что это исключение при разборе его в json.

NSData *postData = [NSJSONSerialization dataWithJSONObject:[super requestData] options:0 error:&error]; 

enter image description here

Он терпит неудачу за исключением следующего. Любая идея, почему это происходит?

'NSInvalidArgumentException', reason: 'Invalid type in JSON write (FTRecord)' 
*** First throw call stack: 
(
    0 CoreFoundation      0x01aae5e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x018318b6 objc_exception_throw + 44 
    2 CoreFoundation      0x01aae3bb +[NSException raise:format:] + 139 
    3 Foundation       0x015760f0 _writeJSONValue + 771 
    4 Foundation       0x0157a470 ___writeJSONArray_block_invoke + 129 
    5 CoreFoundation      0x01b2b05d __53-[__NSArrayI enumerateObjectsWithOptions:usingBlock:]_block_invoke + 61 
    6 CoreFoundation      0x01b2af92 -[__NSArrayI enumerateObjectsWithOptions:usingBlock:] + 258 
    7 CoreFoundation      0x01aa80a5 -[NSArray enumerateObjectsUsingBlock:] + 53 
    8 Foundation       0x0157a381 _writeJSONArray + 275 

FTRecord:

@interface FTRecord : NSManagedObject 

@property (nonatomic) BOOL isRealEntry; 
@property (nonatomic) NSTimeInterval timestamp; 
@property (nonatomic, retain) NSString * notes; 
@property (nonatomic) double orderingValue; 
@property (nonatomic) int16_t rating; 
@property (nonatomic) NSTimeInterval recordDate; 

@end 

ответ

1

Из документов, NSManagedObject не отвечает критериям NSJSONSerialization для действительных объектов:

Объект, который может быть преобразован в формат JSON должен иметь после Свойства:

Объект верхнего уровня - NSArray или NSDictionary. Все объекты: экземпляров NSString, NSNumber, NSArray, NSDictionary или NSNull. Все ключи являются экземплярами NSString. Числа не NaN или бесконечность.

Вы можете проверить это, позвонив isValidJSONObject:

Смежные вопросы