- (void)connectionDidFinishLoading:(NSURLConnection *)connection
只有一个参数。
连接。
但是,我没有看到任何连接成员可以告诉资源返回的数据是什么。
我检查了一下 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html#//apple_ref/doc/c_ref/NSURLConnection如果我们这样做 sendSynchronousRequest:returningResponse:error:我们得到回报。
NSData * response= [NSURLConnection sendSynchronousRequest:URLRequest returningResponse:&URLResponse error:&error];
NSString * result = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
这里,结果是实际返回的内容。
但是,如果我们异步发送此请求呢?
答案 0 :(得分:3)
你需要实现更多然后只有一个回调(用于异步调用)。
在 didReceiveData 中构建缓冲区,然后在完成的事件上使用缓冲区。
像这样:
// in .h NSMutableData *_data;
-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response
{
_data = [[NSMutableData alloc] init]; // _data being an ivar
}
-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
[_data appendData:data];
}
-(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error
{
// handle connection error
}
-(void)connectionDidFinishLoading:(NSURLConnection*)connection
{
// do something with _data
}