サーバーにある plist から情報をロードするアプリケーションを作成しました (これが Apple で問題ないことを願っています :-))。アプリケーションは WiFi ではスムーズに動作しますが、3G で使用するとロード時間が少し長すぎます。したがって、plist の読み込みを最適化したいと思います。
plist のコピーをデバイスに保存し、リモート plist が変更されているかどうかのみを確認し、変更されている場合はダウンロードできると思います。これがより少ないデータになるかどうか、つまりロード時間を最小限に抑えるかどうかはわかりません。これがコードでどのように記述されるかさえわかりません。
ロード時間を最小限に抑え、コードサンプルを投稿する方法を知っている人はいますか?
現在、これらの 2 行を使用して plist をロードして保存しています。FETCH_URL
は明らかに私の 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.");
}
次に、新しいデータがあるかどうかを確認する方法と、すべてのデータが収集されているかどうかを確認する方法の 2 つがあります。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
NSLog(@"More data.");
[receivedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"Connection successful.");
}