NSURLConnection的XCode 4警告“expression式结果未使用”
我只是想做我平常的数据转移。 我定义我的NSMutableURLRequest然后调用
[[NSURLConnection alloc] initWithRequest:request delegate:self];
以前用Xcode 3是可以的,但Xcode 4在这一行上提醒我“ expression式结果未被使用 ”。 该请求确实有效,但我想find摆脱警告的方法。
我想我可以将连接存储在一个variables,但我不需要它,我不能看到将它设置为nil
下一行(虽然这将删除警告)
请注意:我不是100%确定它是否是XCode 4或事实ARC已启用。
非常感谢您的帮助!
当一个函数返回一个你不需要的结果时,你可以将其强制转换为void来消除编译器警告:
(void) [[NSURLConnection alloc] initWithRequest:request delegate:self];
我还没有使用ARC,所以我不能说如果这是一个好主意,在ARC之前,你需要保持这个指针的结果,所以你可以释放它。
progrmr的答案是正确的,但这是一个更干净的方法来做到这一点:
[NSURLConnection connectionWithRequest:request delegate:self];
这不会引起警告,即使您没有将结果强制为空。
有人应该负责该NSURLConnection
。 不需要存储连接,但是如果你这样做的话,它是更好的编码。 问题是,在你创buildNSURLConnection
没有人有一个指向那个被创build的实例的指针,不应该是这种情况。
我们假设下面的例子:
- 你的
ClassA
实例正在创build一个NSURLConnection
实例 -
ClassA
的实例正在被释放和处理 -
NSURLConnection
仍然活着,并将委托给你的释放实例。
为了解决这个问题,你应该存储NSURLConnection
的实例,并且如果正在处理ClassA
的实例,那么应该释放该连接,这也会导致NSURLConnection
的实例解除分配。