Vla*_*dan 5 http request ios restkit restkit-0.20
我正在使用RestKit框架,我想发出一个POST HTTP请求.响应是JSON.我想将JSON响应自动放入CoreData中.
我不知道确切地调用什么方法来发出请求.我知道我应该使用RKObjectManager的方法,但我找不到合适的方法.
我找到了这个方法,postObject:delegate:但我不知道作为参数传递的对象.我也在文档中找到了这个方法:loadObjectsAtResourcePath:usingBlock:但是我不能使用它,因为它告诉我:
No visible @interface for 'RKObjectManager' declares the selector 'loadObjectsAtResourcePath:usingBlock:'
Run Code Online (Sandbox Code Playgroud)
Bla*_*ers 53
弗拉德 - 首先,让我们回答你原来的问题:
我假设您正在使用RestKit 0.20.0,但熟悉RestKit 0.10.x API并且正在咨询过时的信息.您应该转向的第一个地方是RKObjectManager.h- 标题始终是最新的,并且将包含有关可用方法的文档.接下来,您始终可以在最新的API docs站点上查看从源代码构建的最新文档.
你想要做的是创建一个RKObjectRequestOperation:
NSDictionary *dictionary = @{ @"firstParam": @(12345), @"secondParam": @"whatever"};
NSMutableURLRequest *request = [objectManager requestWithObject:nil method:RKRequestMethodPOST path:@"/whatever" parameters:parameters];
RKObjectRequestOperation *operation = [objectManager objectRequestOperationWithRequest:request success:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
NSLog(@"Loading mapping result: %@", result);
} failure:nil];
Run Code Online (Sandbox Code Playgroud)
如果您尝试定位Core Data,那么您将要使用RKManagedObjectRequestOperation和managedObjectRequestOperationWithRequest:success:failure:.RestKit Github站点和头文档中的README.md中还有其他示例,单元测试中还有一公吨代码供参考.
接下来,回应JRG-Developer的评论:
嗯,由于种种原因,这是一个非常可怕的答案.(免责声明:我是RestKit的主要开发者)
首先,您使用的是什么版本的RestKit?如果您使用的是最新版本(即在0.20.x预发布系列中),那么加载对象集合的方法已被更好的名称替换:getObjectsAtPath:.这在API文档(按路径发出请求)和0.10到0.20迁移指南中都有详细记录.
我怀疑这里的原始问题源于引用过时的文档以及最近的代码.
接下来,你推荐的技术堆栈是远远更为复杂的设置和使用来实现这一目标RestKit为您提供的,一旦你真正了解图书馆同样的事情.
让我们逐点看看:
AFNetworking
JSONKit
NSJSONSerialization与之相比,JSONKit的JSON解析速度更高 - 但只有毫秒.MagicalRecord
那么让我们来谈谈实现iOS/OS X应用程序的真正问题是什么,该应用程序暂时将API建模到Core Data中:
AFJSONRequestOperation在成功块中回击并更新Core Data,对吧?错误.现在,您正在异步进行网络I/O,但随后执行CPU强化任务,即在主线程上更新数据模型.现在你的应用程序性能糟透了,你不知道该怎么做.如何将同步移到后台?一旦完成,你如何通知用户界面?一旦您的申请成功,您将不得不面对许多其他问题,包括可测试性,可维护性等.您对这些事情的看法是多少?
我想我的主要观点是(从我的角度来看)听到疯狂的欢呼或嘲笑来自花生画廊关于如何解决基本的工程问题.现实情况是,基本复杂性问题的解决方案将具有与所接近的问题相关的学习曲线.
与试图解决更大但更有趣的问题相比,采用不连续的功能并确定一个令人满意的解决方案要容易得多.
但这并不意味着你要通过捆绑一堆你已经听说过提供一个问题子集的良好实现而不是一个更大的聚合问题方法的库来产生一个更强大的解决方案.
为什么没有人开源他们自己的AFN/JSONKit /核心数据/ MagicalRecord mashup并且如果他们比RestKit好得多的话就把RestKit吹出水面?
我担心这个清醒的事实是:它并不那么容易.
干杯!
| 归档时间: |
|
| 查看次数: |
10299 次 |
| 最近记录: |