我正在使用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我已经成功取消取消,但映射仍会继续显示在我的日志中。当时是否有可能停止执行执行?