2

我有一个 NSOperation 的子类,它通过网络发送取消请求。我只想在请求成功时取消操作:

// NSOperation 的覆盖取消
-(无效)取消{
 [NSURLConnection 发送异步请求:请求
                                       队列:[NSOperationQueue 主队列]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
       [超级取消];
    }];
}

这会导致任何保留周期或其他什么吗?我需要弱超吗(我正在使用 ARC)

4

1 回答 1

3

它不会创建保留周期,您的实例没有对完成块的强引用。但是我不想像这样调用super实现,也许像这样

-(void)cancelAfterRequest 
{
    [NSURLConnection sendAsynchronousRequest:request 
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
         [self cancel];
    }];
}
于 2013-11-14T19:41:31.593 回答