复制(复制)核心数据记录和相关记录
问题描述:
我正在编写一个应用程序,允许用户创建一个“调查问卷”,然后向其中添加问题。我正在使用核心数据来存储信息。我创建了一个问卷实体,并与问题实体具有“一对多”关系。我的问题是,如果想让用户复制(复制)整个问卷,问题和所有最好的方法是什么?复制(复制)核心数据记录和相关记录
所以要明确:
我:
问卷纪录--->问题1纪录 - 问题2纪录 - 第3题记录
和我想要的用户能够复制这个并以此结束:
问卷记录---> Quest离子1个纪录 - 问题2纪录 - 第3题记录
问卷(复印)记录--->问题1纪录 - 问题2纪录 - 第3题记录
答
你说你要复制一个完整的调查问卷,所以假设你想要的其实是这样的:
问卷--->问题1 - 问题2 - 问题3
问卷(复印)--->问题1(副本) - 问题2(复制) - 问题3(复制)
然后你需要的是一个深层复制。您可以根据this NSManagedObject category编写一些内容,假设您在数据模型上正确设置了关系的所有权规则。
答
您只需插入一个新的管理对象,然后将所有它的值与原始对象相同。如果您使用的是你的管理对象专门的子类,你甚至可以写一个简单的辅助方法(例如假设名为问卷管理对象,相应地更改):
-(Questionnaire*)copyQuestionnaire
{
NSManagedObjectContext* ctx = [self managedObjectContext];
// Obviously use the correct entity name...
Questionnaire* newCopy = [NSEntityDescription insertNewObjectForEntityForName:@"Questionnaire" inManagedObjectContext:ctx];
// Now just copy your properties, for this example we'll assume
// a simple relationship called 'questions'
[newCopy setQuestions:[self questions]];
// We return a retained copy since our method name starts
// with 'copy'
return [newCopy retain];
}
是的,这就是我一直在寻找的!谢谢! – Vic320 2011-03-26 15:04:46
没有问题。不要忘记接受答案:) – 2011-03-26 16:03:47