Sti*_*Sti 1 cocoa-touch nsurlconnection nsdata ios
我有最糟糕的互联网连接atm,很抱歉,如果之前有人询问过..
我有一个NSURLConnection来获取一些json数据.到目前为止,使用委托方法didReceiveData:(NSData*)数据来保存接收到的数据非常合适.我正在同时从至少七个不同的页面下载数据.今天,在更新json-pages以包含更多数据之后,NSData对象似乎已损坏.我最近被告知这个代表不会返回整个数据,从而破坏我的信息.
是否有像didFinish这样的另一个委托只返回完整的完整对象?或者我自己必须这样做,比如合并两个NSData?
抱歉愚蠢,语法错误专用于iPhone自动更正.
小智 7
你必须永远不要依赖didReceiveData:返回完整的数据,因为它会破坏一天.您必须在NSMutableData中收集数据块:
NSMutableData *d = [[NSMutableData alloc] init];
- (void)connection:(NSURLConnection *)c didReceiveData:(NSData *)data
{
[d appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)conn
{
// 'd' now contains the entire data
}
Run Code Online (Sandbox Code Playgroud)
如果它对您不方便,您可以避免使用NSURLConnection并使用后台线程使用以下方法获取单件数据:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://web.service/response.json"]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
631 次 |
| 最近记录: |