objective-c - 我可以在 restkit 的异步结果中使用 block 吗?

标签 objective-c asynchronous objective-c-blocks restkit

--更新:我决定尝试一下 AFNetworking。尽管 RestKit 具有非常好的对象映射功能,但网络调用的设计方式给我们带来了一些困难。

我希望得到一些关于如何组织我使用 RestKit 的项目的建议。

我有几个来自存储库类的 REST 调用,其结果传递给 Controller ​​。例如,我在从我们的浏览 View Controller 调用的存储库类中有一个 getProfile 方法。 View Controller 设置为获取配置文件调用的委托(delegate),而存储库类设置为 restkit 调用的委托(delegate)。

问题是,如果浏览 Controller 发出多个获取配置文件请求,则很难区分哪个结果应该转到哪个委托(delegate)函数,因为所有 restkit 调用共享相同的委托(delegate)方法 objectLoaderDidFinishLoading。然后我有 4 个代表,我必须匹配 4 个异步 restkit 请求的结果。

有什么方法可以使用 block ,以便在 asnynrhounous 结果返回时传递一个函数来执行,以便我可以分配一个合适的委托(delegate)?我看到的 block 支持允许在 rest kit 中发送请求之前使用 block ,但我有兴趣在返回异步结果时使用它。

检查结果或设置用户数据并调查委托(delegate)与异步结果的替代方案似乎不可靠且庞大。

最佳答案

您可以通过在 RKObjectLoader 上使用 userData 不透明指针来消除配置文件请求之间的歧义来解决您的问题。这将允许您在请求中挂起您想要的任何对象,然后可以使用这些对象来帮助区分多个配置文件请求。此外,如果这些配置文件请求将发送到不同的资源路径,那么您可以只使用 RKObjectLoader 上的 wasSentToResourcePath: 方法来区分它们。

关于objective-c - 我可以在 restkit 的异步结果中使用 block 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856114/

相关文章:

ios - NSOperationQueue添加后台线程操作

ios - 从特定链接下载文件并将其存储在设备 iOS 中?

java - Spring 3.x - @Async 方法不被任务执行器同时调用

ios - block 是通过引用还是通过值从堆栈上的一次调用传递到另一次调用?

iphone - 从 NSArray 执行 block ?

ios - UIView block 动画更新间隔

ios - MPMoviePlayerViewController 旋转播放录制的肖像电影

ios - Restkit 0.20 CoreData error "Can' t find model for source store”

javascript - 在循环内使用异步函数并仅在循环完成后调用回调

javascript - 为什么在 foreach 函数回调中对全局变量所做的更改不反射(reflect)取消回调