【发布时间】:2011-06-28 07:48:59
【问题描述】:
我编写了一个应用程序,它从位于我的服务器上的 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。
这是在我看来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.");
}
【问题讨论】:
-
是加载时间问题还是在您加载时应用程序挂起?
标签: iphone load plist minimize