我正在尝试将现有数据从本地商店播种到支持iCloud的商店。当我尝试从本地托管对象访问关系对象时,抛出以下异常,
> illegal attempt to establish a relationship between objects in
> different contexts
这就是我想要做的......
NSEntityDescription *entity = [recurringExpense entity];
RecurringExpense *newRecExpense = [[RecurringExpense alloc]initWithEntity:entity insertIntoManagedObjectContext:moc];
newRecExpense.category = recurringExpense.category;
[moc assignObject:newRecExpense toPersistentStore:store];
提前致谢。
答案 0 :(得分:0)
您似乎遇到的问题是在其中一个对象的托管对象上下文之外或跨线程/队列边界创建关系。
根据Apple文档,“您必须在将使用它的线程上创建托管上下文。”此外,关系两侧的对象需要在同一个NSManagedObjectContext中引用。
来自Apple:
请参阅此处的核心数据并发:http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/CoreData/Articles/cdConcurrency.html
以下Stack Overflow答案提供了更多详细信息:https://stackoverflow.com/a/1554935/1294009