在文件RKMappingOperation有方法Restkit:methodSignatureForSelector在RKMappingOperation崩潰與EXC_BAD_ACCESS
- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
return [self.object methodSignatureForSelector:selector];
}
觸發對iPhone5的異常,但應用程序繼續運行。但是在iPhone4S上,應用程序與EXC_BAD_ACCESS一起崩潰。
我假設如文檔中規定的異常處理:
引發NSInvalidArgumentException。在您的具體子類中重寫此方法,以便爲給定的選擇器和您的代理對象所代表的類返回適當的NSMethodSignature對象。
日誌文件:
T restkit.object_mapping:RKMappingOperation.m:862 Performing mapping operation: <RKMappingOperation 0x181e1960> for 'TSNDecimal' object. Mapping values from object 10 to object <TSNDecimal: 0x18004bc0> (entity: TSNDecimal; id: 0x1819dcb0 <x-coredata:///TSNDecimal/t507A4693-CB2E-4194-966A-00BA8AD5CC70391> ;
data: {
number = 0;
responseName = nil;
sortId = 0;
ticket = nil;
}) with object mapping (null)
2014-07-07 13:17:50.194 VZN Mobile[440:8f0f] D restkit.object_mapping:RKPropertyInspector.m:131 Cached property inspection for Class 'TSNDecimal': {
number = {
isPrimitive = 0;
keyValueCodingClass = NSDecimalNumber;
name = number;
};
responseName = {
isPrimitive = 0;
keyValueCodingClass = NSString;
name = responseName;
};
sortId = {
isPrimitive = 0;
keyValueCodingClass = NSNumber;
name = sortId;
};
sortIdValue = {
isPrimitive = 1;
keyValueCodingClass = NSNumber;
name = sortIdValue;
};
ticket = {
isPrimitive = 0;
keyValueCodingClass = TSNTicketApiTO;
name = ticket;
};
} 2014年7月7日13:17:50.194 VZN移動[440:9f07] T,restkit.object_mapping:RKMappingOperation.m:在440的keyPath實測值變形'(空值)'。從'__NSCFNumber'類轉換爲'NSDecimalNumber' 2014-07-07 13:17:50.204 VZN Mobile [440:9f07] self.object:10
顯示導致異常的映射和JSON。 – Wain