我只是想做我惯常的数据传输。我定义了我的NSMutableURLRequest,然后调用
[[NSURLConnection alloc] initWithRequest:request delegate:self];
以前这对Xcode 3来说还不错,但Xcode 4警告我该行上有“表达结果未使用”。 请求确实有效,但我想找到一种摆脱警告的方法。
我想我可以将连接存储在一个变量中,但我真的不需要它,我无法看到将它设置为nil
下一行的意义(尽管这会删除警告)< / p>
请注意:如果是XCode 4或启用了ARC,我不能100%确定。
非常感谢你的帮助!
答案 0 :(得分:180)
当函数返回不需要的结果时,可以将其转换为void以消除编译器警告:
(void) [[NSURLConnection alloc] initWithRequest:request delegate:self];
我还没有使用ARC,所以我不能说这是不是一个好主意,在ARC之前你需要将这个指针结果放在某处,这样你才能释放它。
答案 1 :(得分:33)
progrmr的答案是正确的,但这是一种更清洁的方法:
[NSURLConnection connectionWithRequest:request delegate:self];
即使您没有将结果转换为无效,也不会引发警告。
答案 2 :(得分:3)
有人应对此NSURLConnection
负责。不需要存储连接,但如果你这样做,则编码更好。问题是,在创建了NSURLConnection
之后,没有人有一个指向该创建实例的指针,这不应该是这种情况。
我们假设以下示例:
ClassA
的实例正在创建NSURLConnection
ClassA
的实例正在发布并取消分配NSURLConnection
仍处于活动状态,并会将代理人解雇给您已取消分配的实例。要解决该问题,您应该存储NSURLConnection
的实例,如果您的ClassA
实例被解除分配,则应该释放该连接,这也会导致NSURLConnection
的实例解除分配。