MR_saveToPersistentStoreAndWait не сохраняет данные из массива

#ios #objective-c #core-data #magicalrecord

#iOS #objective-c #core-данные #волшебная запись

Вопрос:

У меня NSArray есть, в котором я добавляю объекты после того, как пользователь выбирает несколько строк из tableview. После выбора пользователя нажмите подтвердить, и данные будут сохранены. Итак, основываясь на каком-то примере, который я нашел здесь, я реализовал код, но кажется, что он сохраняет только одно значение за раз. Последнее значение, которое выбирает пользователь:

 - (IBAction)confirmPressed:(id)sender {
    NSLog(@"Selected Are: %@ - %@",selectedDX,selectedDesc);
    for (NSString *code in selectedDX) {
        if (!_dxToAddEdit) {
            self.dxToAddEdit = [Diagnoses MR_createEntity];
        }

        [self.dxToAddEdit setCode:code];
        [self.dxToAddEdit setCodeDescription:@"Sample Description"];
        [self.dxToAddEdit setSuperBill:_forSuperBill];

        [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
}
    [self.navigationController popViewControllerAnimated:YES];

}
 

Ответ №1:

Вы работаете только с одним управляемым объектом self.dxToAddEdit . И он будет содержать последний code из массива. Если вы хотите сохранить несколько объектов, вам следует выполнить следующее:

 NSManagedObjectContext *defaultContext = [NSManagedObjectContext MR_defaultContext];
for (NSString *code in selectedDX) {
    Diagnoses *newDiagnose = [Diagnoses MR_createEntityInContext:defaultContext];

    newDiagnose.code = code;
    newDiagnose.codeDescription = @"Sample Description";
    newDiagnose.superBill = _forSuperBill;
}

// Save recently created objects to persistent store.
[defaultContext MR_saveToPersistentStoreAndWait];