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