これを行う2つの異なる方法を見てきましたが、どちらが正しいか知りたいです。
具体的には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
たので、これを回避するために魔法の何かがあったかどうかはわかりませんでした?