我编写了一个应用程序,它从位于我的服务器上的 plist 加载信息(我希望这对 Apple 来说没问题 :-))。该应用程序在 WiFi 上运行流畅,但在 3G 上使用时加载时间有点过长。因此,我想优化我的 plist 的加载。
我想我可以在设备上存储 plist 的副本,并且只检查远程 plist 是否已更改,如果是,请下载它。我不确定这是否会减少数据,从而最大限度地减少加载时间,我什至不确定这将如何用代码编写。
有谁知道如何最小化加载时间并可能发布代码示例?
现在我正在使用这两行来加载 plist 并存储它。FETCH_URL
显然是我的网址。
NSURL *url = [NSURL URLWithString:FETCH_URL];
NSMutableArray *tmpArray = [[NSMutableArray alloc] initWithContentsOfURL:url];
编辑:我正在尝试按照 Thomas Clayson 的建议使用 NSURLConnection,但我似乎无法弄清楚如何将数据转换为 NSMutableArray。
这是在我的 viewDidLoad 中:
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.");
}