0

在RestKit 0.10.3中使用委託方法我能夠同時發送GET請求,即使每個請求的映射都是按順序執行的。我有GET請求,需要很多時間才能收到響應,所以我想同時發送所有請求,但是要遵守映射順序(我有跨三個請求的關係)。我需要的:RestKit 0.2x同步RKManagedObjectRequestOperation

1)發送GET請求n。 1,發送GET請求2,發送GET請求3

2)儘快響應1接收

3開始的請求1映射)時響應1的映射沒有結束,等待響應2和映射 (或剛開始映射如果已經接收到的)

4)當響應2的映射沒有結束,等待迴應3和地圖 (或剛開始映射如果已經收到)

有什麼事發生(如果operationQueue上objectManeger未設置爲1) :

1)發送GET請求n。 1,發送GET請求2,發送GET請求3

2)一旦收到和先前的映射已完成

問題1映射的響應:是有可能尊重映射的訂單?

問題2:可以同時出現更多響應(點2)的映射嗎?換句話說,這是可能的:

1)發送GET請求n。 1,發送GET請求2

2)開始映射響應1

3)開始映射響應2

4)映射響應1結束

5)映射響應2結束

如果這是不可能,我會有一個「半」的解決方案:在willMapDeserializedResponseBlock排隊每個請求。這些請求不會同時發送,但至少我可以在先前的映射之前發送每個請求。

問題3:如果我在交叉關係兩邊複製了entityMappings的「addConnectionForRelationship」,那麼這三個映射應該同時執行,並且順序不應該再重要。這可能沒有創造一些邪惡的行爲(重複的對象,孤立的對象,缺少關係,低性能)??

我瘋了嗎? :D

回答

0

如果您在數據庫中沒有現有對象,那麼在後臺併發運行多個操作會導致問題,因爲您將嘗試在不同線程中跨多個上下文連接或防止出現重複。

的2級通用的解決方案是:

  1. 不要同時運行
  2. 都創造了前面的存根對象,然後響應填充請求,並涉及他們

如果您需要明確指令,然後您應該使用AFNetworking並行執行下載,然後對響應數據使用RestKit映射操作並指定它們之間的依賴關係。