我正在尝试将数据保存到核心数据中。 (主要型号和相关型号)。当我保存后,保存主模型已保存,但没有保存相关模型。 我有以下代码:
NSManagedObjectContext *context = [self managedObjectContext];
Trace *trace = [NSEntityDescription
insertNewObjectForEntityForName:@"Trace"
inManagedObjectContext:context];
trace.totalDistance = self.totalDistance;
trace.averageSpeed = self.averageSpeed;
trace.theBestSpeed = self.theBestSpeed;
trace.stopTime = [NSNumber numberWithInt: self.stopTime];
trace.time = self.time;
NSMutableArray *nsa = [[NSMutableArray alloc] init];
for (int i=0;i<locations.count;i++){
CLLocation* cl =(CLLocation*) locations[i];
Argument *point = [NSEntityDescription
insertNewObjectForEntityForName:@"Argument"
inManagedObjectContext:context];
point.latitude = [NSNumber numberWithDouble: cl.coordinate.latitude];
point.langitude = [NSNumber numberWithDouble: cl.coordinate.longitude];
point.speed = self.speeds[i];
[nsa addObject:point];
}
NSOrderedSet * ns = [[NSOrderedSet alloc] initWithArray:nsa];
trace.points = ns;
NSError *error;
if (![context save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
当我杀死一个应用程序时,Arguments不会保存,但会保存Trace。沙可以导致问题??
答案 0 :(得分:0)
很简单,当你在保存之前杀死应用程序时,它不会保存。没有惊喜。
答案 1 :(得分:0)
首先 - 确保您以正确的方式使用实体关系。
在xcode模型编辑器中选择您的实体,转到Relationships并确保您与Argument对象有“To-Many”关系。不要使用属性链接您的对象,这将无效。
执行此操作后(您可以检查下面的图像),使用[traceObject addArgumentsObject:argument]
将新对象与“跟踪”对象相关联,然后以相同的方式将其删除。
进一步查看Core Data Programming guide
模特 -
关系的属性 -
阿夫特