【发布时间】:2012-03-03 10:32:26
【问题描述】:
更新:
我发现了问题:在启动应用程序时,为了升级数据库,我下载了所有活动,删除了所有数据库并插入了活动。
所以参考丢失了。
谢谢!
我在保存我的关系时遇到了问题。它工作正常,但是当我停止模拟器并再次启动时,关系就消失了! 这是我的代码。
+ (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;
}
//////////////////
我得到了调用这个函数的“活动”。
+ (NSArray *) getAllActivitiesFromViaje:(MOViaje *) viaje {
NSArray *temp = [viaje.activitiesViaje allObjects] ;
return temp;
}
在我创建“viaje”并添加关系“活动”后,它返回 8,但是当我停止模拟器并再次重新启动时,它返回 0。
感谢您的帮助!
【问题讨论】:
-
似乎 [CoreDataHelper commitDefaultMOC] 不起作用。
-
这个代码:NSManagedObjectContext *moc = ApplicationDelegate.managedObjectContext; NSError *error = nil; if (![moc save:&error]) { // 保存失败 NSLog(@"Core Data Save Error: %@, %@", error, [error userInfo]);返回否; } 返回是;
-
很奇怪,保存后尝试输出[moc save]的错误。也许 [mac save] 是 TRUE,但错误不是 nil
-
@NeverBE:感谢您的回答,但是当我打印错误时显示“核心数据保存错误:(null),(null)”,因为没有错误。
-
ApplicationDelegate.managedObjectContext;一定会返回一个对象吗?你能记录那个值吗?
标签: objective-c ios core-data