3 iphone cocoa-touch memory-management objective-c automatic-ref-counting
我正在使用ARC并收到警告说 Capturing 'request' strongly in this block is likely to a retain cycle.
__block ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];
[request setCompletionBlock:^{
NSString *responseString = [request responseString];
self.appointmentArray = [responseString JSONValue];
}];
[request setFailedBlock:^{
NSError *error = [request error];
NSLog(@"%@", error.description);
}];
Run Code Online (Sandbox Code Playgroud)
我假设request在块之前的某个地方被宣布.您需要将其声明为__weak,或者为其设置第二个弱声明变量.
这个问题很相似.试试这个:
__block ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];
__weak ASIHTTPRequest *request_b = request;
[request setCompletionBlock:^{
NSString *responseString = [request_b responseString];
self.appointmentArray = [responseString JSONValue];
}];
[request setFailedBlock:^{
NSError *error = [request_b error];
NSLog(@"%@", error.description);
}];
Run Code Online (Sandbox Code Playgroud)
简单地替换:
__block ASIFormDataRequest*request = [[ASIFormDataRequest alloc] initWithURL:url];
用:
__weak ASIFormDataRequest*请求= [[ASIFormDataRequest的alloc] initWithURL:URL];
就足够了.
| 归档时间: |
|
| 查看次数: |
2354 次 |
| 最近记录: |