【发布时间】:2012-02-10 04:36:58
【问题描述】:
与this question 非常相似,我正在尝试将使用ASIHTTPRequest 和ASIFormDataRequest 的项目转换为ARC。
在我的视图控制器类中,我经常在完成块中引用和使用request 对象的属性(查看响应代码、响应数据等):
__block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:SOME_URL]];
[request setCompletionBlock:^{
if([request responseStatusCode] == 200) ....etc
转换为 ARC 时,我收到警告:
在此块中强烈捕获“请求”可能会导致 保留周期
这样做的正确方法是什么?
另一个 SO 用户在上一个线程中指出,简单地添加 __weak 可能会导致请求在块完成之前被释放,我相信这是真的。
如何在 ARC 下的完成/失败块中正确引用这些属性?
【问题讨论】:
标签: iphone objective-c ios asihttprequest automatic-ref-counting