我已经编写了一个应用程序,可以从我的服务器上的plist加载信息(我希望这对Apple来说没问题:-)。该应用程序在WiFi上运行平稳,但在3G上使用时,加载时间有点太长。因此,我想优化我的plist的加载。
我想我可以在设备上存储一份plist的副本,只检查远程plist是否发生了更改,如果发生了,请下载它。我不确定这是否会减少数据,从而最大限度地缩短加载时间,我甚至不确定这将如何用代码编写。
有人知道我如何最大限度地减少加载时间并可能发布代码示例吗?
现在我正在使用这两行来加载plist并存储它。FETCH_URL
显然是我的URL。
NSURL *url = [NSURL URLWithString:FETCH_URL];
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfURL:url];
编辑:正如Thomas Clayson所建议的那样,我正在尝试使用NSURLConnection,但我似乎不知道如何将数据转换为NSMutableArray。
这在我的视图中DidLoad:
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:FETCH_URL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if (theConnection) {
NSLog(@"Connection open.");
}
else {
NSLog(@"Failed connecting.");
}
然后我有这两种方法来检查是否有任何新数据,以及检查是否所有数据都已收集。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSLog(@"More data.");
[receivedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"Connection successful.");
}