adi*_*dit 0 iphone objective-c nsurlconnection ipad ios
检查委托方法中哪个请求的最佳方法是什么:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个NSURLConnection,我在发出请求之前设置为NSURLConnection,我在里面didReceiveResponse做:
if (self.tempConnection == connection)
Run Code Online (Sandbox Code Playgroud)
但是有可能这对竞争条件不起作用.有一个更好的方法吗?
在OS5中有更好的方法.忘记所有那些麻烦的委托消息.让连接为您构建数据,并将完成的代码与您的起始代码保持一致:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.site.com"]];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
NSLog(@"got response %d, data = %@, error = %@", [httpResponse statusCode], data, error);
}];
Run Code Online (Sandbox Code Playgroud)