更新
我发现了问题:在启动应用程序时,升级数据库,我下载了所有活动,删除了所有数据库并插入了活动。
所以参考文献丢失了
谢谢!
我在保存我的关系时遇到了问题。它工作正常,但当我停止模拟器并再次启动时,关系消失了! 这是我的代码。
+ (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'并添加关系'activity'后,它返回8,但是当我停止模拟器并再次重新启动时,它返回0.
感谢您的帮助!
答案 0 :(得分:0)
您正在[results count]
中保存viaje.numActividades
。但是,在循环中,您只是将那些JSON结果添加到具有现有ID的viaje
。匹配的活动数量显然为零。
检查ID是否具有您期望的值,并检查您的getActivityById
方法是否正常工作。