2013-09-05 2 views
1

Я пытаюсь сохранить данные в основные данные. (Основная модель и родственная модель). Когда я сохраняю после уничтожения, основная модель сохраняется, но не связана с сохраненной моделью. У меня есть следующий код:Связанные данные save Coredata

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]); 
    } 

Когда я убиваю приложение Аргументы не сохранили, но след сохраняется. Шат может вызвать проблему?

+0

Вы уверены, что 'locations.count' больше чем 0? –

ответ

0

Просто, когда вы убиваете приложение до его сохранения, оно не сохраняется. Без сюрпризов.

0

Во-первых - убедитесь, что вы правильно используете отношения с объектами.

В редакторе модели xcode выберите свой объект, перейдите в раздел «Отношения» и убедитесь, что у вас есть отношение «To-Many» к вашему объекту Argument. Не используйте атрибут для привязки ваших объектов, который не будет работать.

После этого (вы можете проверить изображения ниже) вы связываете новые объекты с объектом «Trace» с помощью [traceObject addArgumentsObject:argument] и удаляете их одинаково.

Для дальнейшей проверки Core Data Programming guide

Модель - model editor

собственности отношений -

property of the relationship

AFT

Смежные вопросы