#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];