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的实例的指针,不应该是这种情况。

我们假设下面的例子:

  1. 你的ClassA实例正在创build一个NSURLConnection实例
  2. ClassA的实例正在被释放和处理
  3. NSURLConnection仍然活着,并将委托给你的释放实例。

为了解决这个问题,你应该存储NSURLConnection的实例,并且如果正在处理ClassA的实例,那么应该释放该连接,这也会导致NSURLConnection的实例解除分配。