我有以下几行代码:
NSURL *url = [NSURL URLWithString:URL];
NSURLRequest* request = [NSURLRequest requestWithURL:url .... ];
NSURLConnection* connection = [NSURLConnection alloc];
[connection initWithRequest:request delegate:self];
在最后一行,我得到"表达结果未使用" 警告。现在,根据我在网上阅读的所有文章,这是调用方法的正确方法,建议语法下载URL异步。如何重写此代码以修复警告?
答案 0 :(得分:10)
问题来自于方法NSURLRequest initWithRequest…
返回一个你没有存储的对象。
如果你不需要它,你应该写:
(void)[connection initWithRequest:request delegate:self];
在Xcode上,您也可以使用限定符__unused
来丢弃警告:
__unused [connection initWithRequest:request delegate:self];
通知编译器您故意忽略返回的值。
答案 1 :(得分:4)
您可以使用以下行:
SELECT ref,
CASE WHEN PATINDEX('%[ ]A[0-9][0-9][0-9][0-9][0-9| ]%', ref) > 0
OR PATINDEX('A[0-9][0-9][0-9][0-9][0-9| ]%', ref) = 1 THEN
SUBSTRING(ref, PATINDEX('%A[0-9][0-9][0-9][0-9][0-9| ]%', ref), 6)
ELSE
NULL
END As ReceiptId
FROM imp
而不是:
[NSURLConnection connectionWithRequest:request delegate:self];
答案 2 :(得分:1)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-value"
NSURL *url = [NSURL URLWithString:URL];
NSURLRequest* request = [NSURLRequest requestWithURL:url .... ];
NSURLConnection* connection = [NSURLConnection alloc];
[connection initWithRequest:request delegate:self];
#pragma clang diagnostic pop
有关所有Clang警告的列表,您可以取消take a look here
答案 3 :(得分:1)
将最后两行替换为:
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
警告很有用,因为alloc
可以返回与init
不同的对象(例如,当您使用NSArray
时,会使用class cluster pattern)。
在这种情况下,connection
将引用alloc
返回的此“中间”对象,而不是init
返回的完全初始化的实例。
答案 4 :(得分:1)
只需将最后一行更改为:
connection = [connection initWithRequest:request delegate:self];