【发布时间】:2012-03-23 20:34:55
【问题描述】:
我正在尝试在我的应用程序上使用 RestKit,目前在 github 上使用 master 作为 git 子模块。整个事情已安装并运行。但是,当我尝试从我的 rails 应用程序中获取 JSON 数据时,我在 RestKit 上得到了 BAD_EXC_ACCESS,更具体地说是在 RKObjectLoader.m 的第 365 行。
if ([_delegate respondsToSelector:@selector(request:didLoadResponse:)]) {
[_delegate request:self didLoadResponse:_response];
}
不确定这里发生了什么,但我应该假设这是 Restkit 的问题吗?
这是我想要做的:
-(id) init {
self = [super init];
if (self) {
RKObjectMapping* patientMapping = [RKObjectMapping mappingForClass:[Patient class]];
[patientMapping mapKeyPath:@"id" toAttribute:@"identifier"];
[patientMapping mapKeyPath:@"first_name" toAttribute:@"first_name"];
[patientMapping mapKeyPath:@"middle_initial" toAttribute:@"middle_initial"];
[patientMapping mapKeyPath:@"last_name" toAttribute:@"last_name"];
[patientMapping mapKeyPath:@"email" toAttribute:@"email"];
[patientMapping mapKeyPath:@"password_hint_question" toAttribute:@"password_hint_question"];
[patientMapping mapKeyPath:@"password_hint_answer" toAttribute:@"password_hint_answer"];
[[RKObjectManager sharedManager].mappingProvider setMapping:patientMapping forKeyPath:@"patients"];
}
return self;
}
- (void)loadAll {
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/ios_patient.json" delegate:self];
}
所以基本上我实例化这个类并调用 loadAll。我的 ios_patient.json 返回以下 JSON 代码:
{"patients": [{"id": 1, "first_name": "John", "last_name": "Appleseed", "email": "johnappleseed@apple.com"}]}
任何帮助将不胜感激。
【问题讨论】:
-
您可以启用 NSZombieEnabled 以了解有关崩溃的更多信息或使用带有进程 ID 的 malloc_history。
-
Objective-C 变量通常以驼峰命名,因为它的价值。因此,您可能应该仔细检查您的“first_name”变量是否定义为“NSString *firstName”,并且您的映射是“[patientMapping mapKeyPath:@"firstName" toAttribute:@"first_name"];"
-
另外,1. 你确定你还没有释放你的代表吗? 2. 你在使用 ARC 吗? 3、你是否实现了RKObjectLoader的委托方法(request:didLoadResponse:)?
标签: iphone ios xcode cocoa restkit