异步缓存json

时间:2011-05-26 12:16:45

标签: objective-c cocoa-touch json caching

我正在开发一个iOS应用程序,它从我的服务器的json feed获取数据。解析字符串没问题...但是,我无法异步下载字符串然后缓存它。我找到了SDURLCache,但不知道如何实现它。什么是最好的方法。

1 个答案:

答案 0 :(得分:2)

您可以将文件下载到磁盘(同步):

NSURL * url = [NSURL URLWithString:@"www.yourprovider.com/your.json";
NSData *file = [NSData dataWithContentsOfURL:url];
[file writeToFile:<your file path> atomically:YES];

对于异步操作,您应该使用NSURlConnection。打开连接后,

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:<your NSURL>];

    [request setHTTPMethod:@"GET"];

    NSURLConnection *conn = [NSURLConnection connectionWithRequest:request delegate:self];
    [conn start];

您在此回调中收到数据:

 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)_data {

 //here you could write to a NSFileHandle ivar:
 if (file)  { 

        [file seekToEndOfFile];

    } [file writeData:_data];
}