【问题标题】:Restkit POST ManagedObjectRequestOperation or ObjectRequestOperation?Restkit POST ManagedObjectRequestOperation 还是 ObjectRequestOperation?
【发布时间】:2014-06-04 19:43:16
【问题描述】:

我的应用程序向服务器发送一个带有一些参数的 POST 请求,服务器用一组对象响应。我一直在使用 RKObjectManager 的 managedObjectRequestOperationWithRequest:managedObjectContext:success:failure: 函数来执行此操作,但是在遇到了一些我怀疑的神秘间歇性崩溃问题后 /em> 与底层的 restkit 代码有关 (RestKit Core Data NSError dealloc Crash) 我最近再次阅读了文档,发现了 RKObjectManager 的 postObject:path:parameters:success:failure 功能。

用它代替 managedObjectRequestOperation 似乎没有任何负面影响,一切都按预期运行,因此我的主要问题是用例我应该更喜欢一个吗?

对此的第二个问题是我正在使用 CocoaLumberjack 来处理控制台/文件的调试日志记录,并且我希望记录原始 JSON(在映射到对象之前)以进行调试。我发现这样做的唯一解决方案是执行以下操作:

[operation setWillMapDeserializedResponseBlock:^id(id deserializedResponseBody) {
    DDLogInfo(@"%@", deserializedResponseBody);
    return deserializedResponseBody;
}];

这在我执行 managedObjectRequestOperation 之前就有效,因为这样做涉及在进一步配置它并告诉它启动之前创建它的实例,但是使用所描述的对象管理器的 postObject 函数不涉及创建/返回一个我可以设置 willMapDeserializedResponseBlock 的操作实例...有什么想法吗?

【问题讨论】:

    标签: ios objective-c json post restkit


    【解决方案1】:

    您应该更喜欢postObject:path:parameters:success:failure,因为它是更高级别的 API。不同的是,该操作为您提供了对底层系统和请求的更多访问权限,但如果您不需要,则应让经理为您处理。

    出于调试目的,您可以使用

    RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);
    

    或更低的级别。

    【讨论】:

    • 再次感谢您的意见!我一直在使用上面的方法来记录详细信息,但不幸的是,它没有记录到我的伐木工人文件中以调试临时构建。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多