gpt4 book ai didi

ios - 使用异步 NSURLConnection 获取警告

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:32:31 24 4
gpt4 key购买 nike

我正在尝试避免使用 NSURLConnection 出现此警告:

-(void)goGetData{
responseData = [NSMutableData data];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://somefile.php"]];
[[NSURLConnection alloc]initWithRequest:request delegate:self];
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
[responseData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
//label.text = [NSString stringWithFormat:@"Connection failed: %@", [error description]];
NSLog(@"Connection failed: %@",error);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

NSMutableArray *qnBlock = [responseString JSONValue];
for (int i = 0; i < [qnBlock count]; i++){
NSLog(@"%@",[qnBlock objectAtIndex:i]);
}
}

警告在行:

[[NSURLConnection alloc]initWithRequest:request delegate:self];

警告是:

Expression result unused. 

整个代码运行良好,但我只是采取了预防措施。

最佳答案

两种方法都分配一个对象。

有了分配,

[[NSURLConnection alloc]initWithRequest:request delegate:self];

您有责任发布它。

通过connectWithRequest,

[NSURLConnection connectionWithRequest:request delegate:self];

它由自动释放池保留。我的猜测是,由于它由自动释放池保留,因此您不需要句柄来释放它,并且编译器对自动释放池具有句柄感到满意。

对于 alloc,编译器可能希望您保留一个句柄以便稍后释放。所以它将此标记为警告。

事实是委托(delegate)方法获取句柄,无论您是否显式保留句柄。因此,您可以使用传递给委托(delegate)方法的句柄来释放它。那个警告真的是虚假的,但它只是一个警告。

关于ios - 使用异步 NSURLConnection 获取警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10528546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com