Restkit 0.10.0 & ios 6.1 - objectLoaderWithResourcePath:delegate 方法不进行 http 调用

Posted

技术标签:

【中文标题】Restkit 0.10.0 & ios 6.1 - objectLoaderWithResourcePath:delegate 方法不进行 http 调用【英文标题】:Restkit 0.10.0 & ios 6.1 - objectLoaderWithResourcePath:delegate method not making http call 【发布时间】:2013-04-01 03:54:28 【问题描述】:

我的 ios 代码(使用 Restkit 0.10.0)在 iPhone 5.1 模拟器中运行良好。但是,相同的代码似乎不适用于 iPhone 6.1 模拟器。

在下面的代码中,[objectLoader send] 被调用,我看到调用被添加到 RKRequestQueue。但是,没有进行 http 调用,并且活动指示器不停地旋转。

-(void)myMethodCall:(NSString*)myparam1 password:(NSString*)myparam2
RKObjectMapping* wsReturnMapping = ... //assume some complex mapping logic lives here

RKObjectLoader *objectLoader = [objectManager objectLoaderWithResourcePath:@"/somevalidurl" delegate:self]; //this line shows a deprecation warning
objectLoader.method = RKRequestMethodPOST;
objectLoader.objectMapping = wsReturnMapping;
objectLoader.params = [NSDictionary dictionaryWithObjectsAndKeys:myparam1, @"myparam1", myparam2, @"myparam2", nil];
[objectLoader send];

我也尝试了这些方法来进行 http 调用(但没有奏效):

替代方法 1:

    [objectManager loadObjectsAtResourcePath:@"/somevalidurl" usingBlock:^(RKObjectLoader *loader) 
    loader.delegate = self;
    loader.method = RKRequestMethodPOST;
    loader.objectMapping = wsReturnMapping;
    loader.params = [NSDictionary dictionaryWithObjectsAndKeys:myparam1, @"myparam1", myparam2, @"myparam2", nil];
];

替代方法 2:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:myparam1, @"myparam1", myparam2, @"myparam2", nil];
NSString *resourcePath = [@"/somevalidurl" appendQueryParams:dict];
[objectManager loadObjectsAtResourcePath:resourcePath delegate:self];

问题:

1) 有人让 Restkit 0.10.0 与 iOS 6.x 一起工作吗?

2) 知道为什么 [objectLoader send] 没有进行 http 调用吗? (适用于 iOS 5.x)

3) 如果升级 Restkit 是唯一的选择,我还能利用我拥有的 objectMapping 吗?换句话说,我在最近的 Restkit 中找不到使用 objectMapping 的示例。

任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

好的。每当我在 iphone 5.1 模拟器和 6.1 模拟器之间切换时,问题似乎就会发生。我坚持原来的方法。对我有用的解决方案是 1) 从模拟器中卸载应用

2) 清理并重建项目。

古怪 - 但有效。

【讨论】:

以上是关于Restkit 0.10.0 & ios 6.1 - objectLoaderWithResourcePath:delegate 方法不进行 http 调用的主要内容,如果未能解决你的问题,请参考以下文章

Restkit 映射 0.2

Rails 3.1 & RestKit 0.9.3 - 引用映射

iOS:RestKit 加载对象和发送参数

RESTKit:BaseURL 和路径模式

更新 RestKit:loadObjectsAtResourcePath:usingBlock:不要将对象保存在缓存中

RestKit - 仅在第二次调用时将缓存保存到核心数据