【问题标题】:Trying to use Restkit on iOS - XCode尝试在 iOS 上使用 Restkit - XCode
【发布时间】: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


【解决方案1】:

您可以轻松使用 ARC 和 RestKit,只需在 RestKit 文件上设置 -fno-objc-arc。

【讨论】:

    【解决方案2】:

    感谢 cmets。事实证明 RestKit 与 ARC 不兼容,是的,我正在使用它。变量被正确映射(即使它们不是驼峰式),并且代表也被正确设置和实现。好在我处于开发过程的早期并且可以回到非 ARC。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2021-11-21
      • 2020-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      相关资源
      最近更新 更多