我已经看到了两种不同的方法,我想知道哪种方法是正确的。
具体来说,我正在谈论访问ManagedObject
BG 线程上的 。
我见过的方法是...
Person *person = ...
[MagicalRecord saveUsingBlock:^(NSManagedObjectContext *localContext) {
Person *localPerson = [person inContext:localContext];
// do stuff...
}]
不过我也看过...
Person *person = ...
NSManagedObjectID *objectID = person.objectID;
[MagicalRecord saveUsingBlock:^(NSManagedObjectContext *localContext) {
Person *localPerson = (Person*)[localContext objectWithID:objectID];
// do stuff...
}]
后者似乎更正确,因为您没有尝试跨线程访问对象。但是看到两者后,我不确定是否MagicalRecord
做了一些神奇的事情来解决这个问题?