Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在完成块中访问super的正确方法_Ios_Objective C_Automatic Ref Counting_Objective C Blocks_Retain Cycle - Fatal编程技术网

Ios 在完成块中访问super的正确方法

Ios 在完成块中访问super的正确方法,ios,objective-c,automatic-ref-counting,objective-c-blocks,retain-cycle,Ios,Objective C,Automatic Ref Counting,Objective C Blocks,Retain Cycle,我有一个子类NSOperation,它通过网络发送取消请求。 仅当请求成功时,我才想取消操作: // overrider cancel of NSOperation -(void)cancel{ [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue]

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

// overrider cancel of NSOperation -(void)cancel{ [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { [super cancel]; }]; } //NSO操作的重写器取消 -(作废)取消{ [NSURLConnection sendAsynchronousRequest:请求 队列:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse*响应,NSData*数据,NSError*错误){ [超级取消]; }]; }
这会导致任何保留周期或其他问题吗?我是否需要弱超级(我正在使用ARC)

它不会创建保留循环,您的实例没有对完成块的强引用。但是,我不希望像这样调用
super
实现,可能是这样的

-(void)cancelAfterRequest 
{
    [NSURLConnection sendAsynchronousRequest:request 
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
         [self cancel];
    }];
}