Я работаю с coreData one-to many relationship. Например, папка-файл. Так что я хочу сделать, это взять файл из одной папки и скопировать его в другую папку.Проблемы с отношением «один-ко-многим» CoreData
So for example
folder A B
file a b
file c d
Теперь я хочу, чтобы скопировать файл с из папки A в папку B, и она должна выглядеть так
folder A B
file a b
file c d
file c
Для выполнения этой операции я написал этот код Это происходит в некотором View Controller который открывается после некоторых навигационных операций
во-первых, я добывающие все папки здесь
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Folder" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSError *error = nil;
m_folderResults = [self.managedObjectContext executeFetchRequest:request error:&error];
тогда я создал новый экземпляр файла
File *fileObject = [NSEntityDescription insertNewObjectForEntityForName:@"File" inManagedObjectContext:self.managedObjectContext];
fileObject = (passed file object to this ViewController)
Folder *folderObject = [m_folderResults objectAtIndex:m_indexPath.row];
NSMutableOrderedSet *files = [folderObject mutableOrderedSetValueForKey:@"file"];
[files addObject:fileObject];
Это работает, но проблема я столкнулся в том, что я получаю это так
folder A B
file a b
file d
file c
означает, что он становится удален из одной папки и добавление в другую папку.
Поэтому я хочу знать, где я ошибаюсь.
С уважением Ранджит
Кажется, что вы фактически не делаете копию файла. Я не вижу здесь кода, который вызвал эту проблему. Не могли бы вы поделиться еще одним кодом? –
Может ли быть так, что в 'fileObject = (передан файловый объект этому ViewController) вы заменяете * вновь созданный объект файла тем, который хотите скопировать? Скорее всего, вам нужно скопировать атрибуты, например. 'fileObject.name = oldFileObject.name, ...'. –
Привет @MarkKryzhanouski, на самом деле это то, что я написал для копирования одного файла из одной папки в другую, у меня больше нет кода для обмена – Ranjit