Я хочу иметь возможность поддерживать копирование и вставку для строки tableview, содержащей основной объект данных. Этот объект имеет один атрибут и два отношения. Когда я использую технику архивирования словаря, рекомендованную Apple (из «NSPersistentDocument Core Data Tutorial»), я обнаружил, что отношения вызывают ошибку. Вот существенная часть кода, где происходит проблема:Архивирование объекта данных ядра с отношением
for (id sectionObject in selectedSectionsArray){
NSDictionary *thisDictionary = [sectionObject dictionaryRepresentation]; // 'sectionObject' has 1 attribute and 2 relationships (one-to-many)
[copyObjectsArray addObject:[sectionObject dictionaryRepresentation]];
}
NSPasteboard *generalPasteboard = [NSPasteboard generalPasteboard];
[generalPasteboard declareTypes:[NSArray arrayWithObjects:MSSectionsPBoardType, NSStringPboardType, nil] owner:self];
NSData *copyData = [NSKeyedArchiver archivedDataWithRootObject:copyObjectsArray]; // Here's where it crashes. ERROR MESSAGE: "-[NSManagedObject encodeWithCoder:] unrecognized selector sent to instance 0x22fd410"
Таким образом, кажется, единственный способ скопировать отношения к монтажному столу должен быть архивировать его URI. В этом случае мне приходится иметь дело с головной болью, связанной с временными идентификаторами. Может ли кто-нибудь подтвердить, что это так? Должно быть, это так сложно?
Можете ли вы предоставить ссылку на «Учебное пособие по основным данным NSPsistentDocument»? Я нашел только версию для Mac OS X 10.4, которая гласит «Не рекомендуется» на титульном листе. –