我正在使用Restkit(0.20.3),編譯到iPhone 5s(8.4)模擬器上。已運行請求/映射的Restkit「cancelAllObjectRequestOperationsWithMethod」
所以我見過很多關於「cancelAllObjectRequestOperationsWithMethod」的帖子以取消請求。我目前有一個帶有大型JSON包的請求,需要幾秒鐘才能映射到CoreData。用戶可以選擇通過按鈕手動取消請求。
如果我的理解是正確的,這個「cancelAllObjectRequestOperationsWithMethod」應該停止請求,即使它正在運行?如果沒有,那麼我的問題是如何去做這件事。但是,如果這應該停止當前的操作,那麼基於日誌,它似乎沒有工作,因爲我仍然可以看到許多用於映射API的打印語句。
這裏是我的開始API代碼:
@try{
[[RKObjectManager sharedManager] getObjectsAtPath:path
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {} failure:^(RKObjectRequestOperation *operation, NSError *error) {}
@catch(NSException *e) {
NSLog(@"%@", e);
}
這裏是我的取消代碼,當用戶按下按鈕:
NSLog(@"%@", [[RKObjectManager sharedManager] enqueuedObjectRequestOperationsWithMethod:RKRequestMethodAny matchingPathPattern:path]);
[[RKObjectManager sharedManager] cancelAllObjectRequestOperationsWithMethod:RKRequestMethodAny matchingPathPattern:path];
NSLog(@"%@", [[RKObjectManager sharedManager] enqueuedObjectRequestOperationsWithMethod:RKRequestMethodAny matchingPathPattern:path]);
第一的NSLog顯示state: Executing, isCancelled=NO
第二NSLog顯示state: Executing, isCancelled=YES
S o我已經成功取消取消,但映射仍會繼續顯示在我的日誌中。當時是否有可能停止執行執行?