Ios AF2:取消批处理请求
我正在使用AFNetworking2代码来批处理请求。我从示例代码中复制粘贴,并将上载操作更改为下载。我需要取消控制器上的下载操作。我正在尝试实施取消:Ios AF2:取消批处理请求,ios,objective-c,afnetworking-2,Ios,Objective C,Afnetworking 2,我正在使用AFNetworking2代码来批处理请求。我从示例代码中复制粘贴,并将上载操作更改为下载。我需要取消控制器上的下载操作。我正在尝试实施取消: [[self.imagesQueue.operations filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { return [evaluatedObject i
[[self.imagesQueue.operations
filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
{ return [evaluatedObject isKindOfClass:[AFHTTPRequestOperation class]]; }]] makeObjectsPerformSelector:@selector(cancel)];
批量请求的数量(下载图像):
一系列启动和取消导致EXC_断点(代码=EXC_ARM_断点,子代码=0xdefe):
有什么提示吗?尝试将str声明为块变量(您正在块中访问它): 在执行取消选择器之前,您还可以尝试检查操作是否已完成
在view will dissides方法中,您可以调用映像队列上的cancelAllOperations来取消所有剩余的操作。AFNetworking正在以巨大的速度变化。您的问题可能更适合github问题列表。
-(void) startDownloadImages {
NSMutableArray *mutableOperations = [NSMutableArray array];
//self.downloadOperations = [NSMutableArray array];
for (NSString *str in _project.frames) {
NSURLRequest *request =
[[AFHTTPRequestSerializer serializer] requestWithMethod:@"GET"
URLString:str
parameters:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"OK %@", str);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"FAILS %@", str);
}];
[mutableOperations addObject:operation];
}
NSArray *operations =
[AFURLConnectionOperation batchOfRequestOperations:mutableOperations
progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) {
NSLog(@"%lu of %lu complete", (unsigned long)numberOfFinishedOperations, (unsigned long)totalNumberOfOperations);
} completionBlock:^(NSArray *operations) {
NSLog(@"All operations in batch complete");
}];
self.imagesQueue = [[NSOperationQueue alloc] init];
self.imagesQueue.name = @"com.imagesqueue";
self.imagesQueue.maxConcurrentOperationCount = 1;
[self.imagesQueue addOperations:operations waitUntilFinished:NO];
//[[NSOperationQueue mainQueue] addOperations:operations waitUntilFinished:NO];
}
libdispatch.dylib`dispatch_group_leave:
0x37e1e7d8: dmb ishst
0x37e1e7dc: ldrex r1, [r0, #40]
0x37e1e7e0: adds r1, #1
0x37e1e7e2: strex r2, r1, [r0, #40]
0x37e1e7e6: cmp r2, #0
0x37e1e7e8: bne 0x37e1e7dc ; dispatch_group_leave + 4
0x37e1e7ea: cmp.w r1, #4294967295
0x37e1e7ee: ble 0x37e1e7fe ; dispatch_group_leave + 38
0x37e1e7f0: mvn r2, #2147483648
0x37e1e7f4: cmp r1, r2
0x37e1e7f6: it eq
0x37e1e7f8: beq.w 0x37e21df8 ; _dispatch_group_wake
0x37e1e7fc: bx lr
0x37e1e7fe: trap
0x37e1e800: nop
0x37e1e802: nop
__block NSString *str;
for (str in _project.frames) {