UPDATE:
我發現這個問題:在啓動應用程序,升級DB,我下載了所有的活動,刪除了所有數據庫,並插入活動。
所以參考文獻丟失了。
謝謝!核心數據:啓動內不保存關係
保存我的關係時出現問題。它工作正常,但是當我停止模擬器並再次啓動時,關係消失了! 這是我的代碼。
+ (BOOL) createViajeWithJson:(NSString *)responseJson dictParams:(NSDictionary *)dictParams{
MOViaje *viaje = (MOViaje *)[NSEntityDescription insertNewObjectForEntityForName:@"Viaje" inManagedObjectContext:ApplicationDelegate.managedObjectContext];
viaje.nombre = [dictParams valueForKey:@"nombreViaje"];
viaje.destino = [dictParams valueForKey:@"destino"];
viaje.timestamp = [NSDate date];
NSArray *results = [responseJson JSONValue];
for (id object in results){
// get the entity previously saved.
MOActivity *tmpActivity = [MOActivity getActivityById:(NSNumber *)object];
if (tmpActivity != nil) {
[viaje addActivitiesViajeObject:tmpActivity];
[tmpActivity addViajeObject:viaje];
}
}
viaje.numActividades = [NSNumber numberWithInt:[results count]];
NSManagedObjectContext *moc = ApplicationDelegate.managedObjectContext;
NSError *error = nil;
if (![moc save:&error]) {
// Save failed
NSLog(@"Core Data Save Error: %@, %@", error, [error userInfo]);
return NO;
}
return YES;
}
///////////////////
我得到了 'actvities' 調用這個函數。
+ (NSArray *) getAllActivitiesFromViaje:(MOViaje *) viaje {
NSArray *temp = [viaje.activitiesViaje allObjects] ;
return temp;
}
後,我創造「VIAJE」,並添加關係「活動」返回8,但是當我停止模擬器,並再次重新啓動,則返回0。
感謝您的幫助!
似乎[CoreDataHelper commitDefaultMOC]不起作用。 – NeverBe 2012-03-03 11:00:18
它代碼如下:NSManagedObjectContext * moc = ApplicationDelegate.managedObjectContext; \t NSError * error = nil; \t如果(![MOC保存:&錯誤]){ \t \t //保存失敗 \t \t的NSLog(@ 「核心數據保存錯誤:%@%@」,錯誤,[錯誤USERINFO]); \t \t return NO; \t} \t return YES; – user380257 2012-03-03 11:02:56
很奇怪,試着在保存後輸出[moc save]的錯誤。可能[mac save]是TRUE,但錯誤不是零 – NeverBe 2012-03-03 12:09:18