正しく作成されて保存されているように見えるオブジェクト (NSManagedObject サブクラス) がいくつかありますが、リロードすると、オブジェクト内の変数からのみ null を取得できます。
適切な数のオブジェクトが保存されていますが、変数は保存されていません。
コードを何度か調べましたが、問題が保存側にあるのか読み込み側にあるのかわかりません。
どんな考えでも大歓迎です!前もって感謝します
//Create a route
- (CNSRoute *) createRoute
{
CNSRoute *p = [NSEntityDescription insertNewObjectForEntityForName:@"CNSRoute" inManagedObjectContext:context];
[allRoutes addObject:p];
//NSLog(@"Route: %@", p);
return p;
}
//Load all routes from core data
- (void) loadAllRoutes
{
NSLog(@"All Routes: %@", allRoutes);
if (!allRoutes) {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *e = [[model entitiesByName] objectForKey:@"CNSRoute"];
[request setEntity:e];
NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sd]];
NSError *error;
NSArray *result = [context executeFetchRequest:request error:&error];
if (!result) {
[NSException raise:@"Fetch Failed" format:@"Reason: %@", [error localizedDescription]];
}
NSLog(@"LOAD RESULT: %@", result);
for (CNSRoute *route in result) {
NSLog(@"Loading Route... %@", [route name]);
}
allRoutes = [[NSMutableArray alloc] init];
[allRoutes setArray:result];
//NSLog(@"%@", allLocations);
}
}
//Save context
- (BOOL)saveChanges
{
NSError *err = nil;
BOOL successful = [context save:&err];
if (!successful) {
NSLog(@"ERROR SAVING: %@", [err localizedDescription]);
}
return successful;
}
//Save when application enters background
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[[CNSTravelController sharedStore] saveChanges];
}