在使用委托方法的 RestKit 0.10.3 中,我能够同时发送 GET 请求,即使每个请求的映射都是按顺序执行的。我有 GET 请求需要很长时间才能收到响应,所以我想同时发送所有请求,但要遵守映射顺序(我有跨越三个请求的关系)。我需要的:
1) 发送 GET 请求 n。1、发送GET请求n。2、发送GET请求n。3
2) 收到响应 1 后立即开始映射请求 1
3) 当响应 1 的映射完成时,等待响应 2 并映射(或者如果已经收到则开始映射)
4)当响应 2 的映射完成时,等待响应 3 并映射(或者如果已经收到则开始映射)
似乎会发生什么(如果 objectManeger 上的 operationQueue 未设置为 1):
1) 发送 GET 请求 n。1、发送GET请求n。2、发送GET请求n。3
2) 收到后立即映射响应,并且先前的映射已完成
问题1:是否可以在映射中尊重顺序?
问题 2:更多响应的映射(第 2 点)可以同时发生吗?换句话说,这可能吗:
1) 发送 GET 请求 n。1、发送GET请求n。2
2)开始映射响应1
3)开始映射响应2
4)映射响应1结束
5)映射响应2结束
如果这是不可能的,我会有一个“一半”的解决方案:将每个请求排入 willMapDeserializedResponseBlock 中。这些请求不会同时发送,但至少我将能够在前一个映射之前发送每个请求。
问题3:如果我在交叉关系的两边复制entityMappings的“addConnectionForRelationship”,这三个映射应该同时执行,顺序应该不再重要了。在不产生一些邪恶行为(重复对象、孤立对象、缺失关系、低性能)的情况下,这是否可能?
我疯了吗?:D