RestKit - 使用RKObjectManager取消后加载资源路径

时间:2013-05-26 21:15:58

标签: restkit restkit-0.20

我使用RKObjectManager从远程资源加载对象,并使用tableView显示获取的对象。当我的tableView模型被释放时,我用

取消所有当前请求
[self.objectManager cancelAllObjectRequestOperationsWithMethod:RKRequestMethodGET matchingPathPattern:self.resourcePath];

当用户重新加载视图时,会创建一个新模型 - 我不是从头开始创建objectManager,而是获取相同的模型(我将objectManager实例存储在其他位置)。我试图在应用程序中为同一个服务/站点使用单个对象管理器 - 不确定我们是否可以对同一个持久对象存储使用多个对象管理器?但是,现在对资源路径的所有请求都会失败,并显示以下错误。

restkit.network:RKObjectRequestOperation.m:569 Object request failed: Underlying HTTP request operation failed with error: Error Domain=NSURLErrorDomain Code=-999 "The operation couldn’t be completed. (NSURLErrorDomain error -999.)"

看起来,一旦我取消了对象管理器上的资源路径,我就无法在以后通过新请求重新加载该资源。最佳做法是取消当前请求并在以后重新加载?在早期的restkit代理版本中,如果我没有从对象管理器中删除我的模型/视图作为委托,我的应用程序将崩溃。我想我仍然应该取消我的请求以避免这些问题,即使采用新的块操作方式?指针/建议非常感谢。感谢

此致

George M.P。

1 个答案:

答案 0 :(得分:0)

  

不确定我们是否可以对同一个持久对象存储使用多个对象管理器?

没问题。

  

当用户重新加载视图时,会创建一个新模型 - 而不是从头开始创建objectManager,我会获取同一个...

如果你创建一个新模型(我猜你的意思是托管对象存储?),你应该创建一个新的对象管理器来配合它。从理论上讲,您可以为旧的对象管理器提供新的存储,但是存在(或可能)许多可能无效的内部缓存。

取消然后重新加载应该没问题,问题是你在对象存储器之间做了什么......