在文件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