CLLocation データをアーカイブする方法がわかりません。
アプリが (ユーザーまたは OS によって) 強制終了されたときにロケーション マネージャーから取得した CLLocation オブジェクトをアーカイブし、起動時に取得したいと考えています。しかし、applicationWillEnterForeground メソッドでアーカイブを解除した後、NSLog はカウント 0 を出力します。これは私が持っているものです:
-(void)applicationWillTerminate:(UIApplication *)application {
if([self.locs count] > 0) {
NSArray* arr = [[NSArray alloc] initWithObjects:self.locs, nil];
NSString *archivePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"Locs.archive"];
[NSKeyedArchiver archiveRootObject:arr toFile:archivePath];
//[arr release];
}
[self.locationManager stopUpdatingLocation];
[self.locationManager release];
}
と
-(void)applicationWillEnterForeground:(UIApplication *)application {
NSString *archivePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"Locs.archive"];
self.locs = [NSKeyedUnarchiver unarchiveObjectWithFile:archivePath];
NSLog(@"friet : %i", [self.locs count]);
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStatusChanged:) name:kReachabilityChangedNotification object:nil];
[self sendLocations];
}
これらはドキュメントです。私はすでにそれらを見つけましたが、私にはまったく意味がありません!