【问题标题】:RestKit crashes after upgrading to 0.10.0RestKit 升级到 0.10.0 后崩溃
【发布时间】:2012-05-13 02:10:22
【问题描述】:

我似乎能够很好地启动 restkit 并使用传统的 loadobjectsatresourcepath:delegate: 方法加载对象。但是,当我引入 block:^{} 时,restkit 每次都会崩溃。

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/api/v1/places" delegate:self block:^(RKObjectLoader* loader) {
    loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Place class]];
}];

我在日志中得到了这个:

2012-05-12 19:07:32.266 App - [RKObjectManagerloadObjectsAtResourcePath:delegate:block:]: unrecognized selector sent to instance 0x3aa2e0
2012-05-12 19:07:32.268 App - *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '-[RKObjectManager   loadObjectsAtResourcePath:delegate:block:]: unrecognized selector sent to instance 0x3aa2e0'

关于如何解决此问题的任何想法?谢谢!

【问题讨论】:

    标签: iphone objective-c restkit


    【解决方案1】:

    异常告诉您问题的确切原因:RKObjectManager 不响应 loadObjectsAtResourcePath:delegate:block:。快速浏览 API 文档会发现 the original method 在 0.10.0 中不再存在,并且似乎已被 loadObjectsAtResourcePath:usingBlock: 替换。

    您应该能够通过使用新方法来避免异常:

    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/api/v1/places" usingBlock:^(RKObjectLoader* loader) {
        loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Place class]];
    }];
    

    【讨论】:

    • 谢谢!这就是我所怀疑的。这让我很困惑,然后我发现 Xcode 正在链接一个旧的 Restkit 库并且我的代码完成工作不正常。删除我的派生数据内容并重建后,一切正常。
    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2019-05-12
    • 1970-01-01
    • 2011-05-16
    • 2021-05-02
    相关资源
    最近更新 更多