0

我使用 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.)"

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

问候

乔治议员

4

1 回答 1

0

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

没问题。

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

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

取消然后重新加载应该没问题,问题是您在两者之间使用对象存储做什么......

于 2013-05-27T13:45:44.513 回答