我正在努力找出更安全/最佳做法。我有一个方法,它接受一个对象,获取一些数据,并将其保存到该对象。我应该传递该方法的对象还是只是对象ID,然后在方法中重新获取对象?是一个比另一个更好还是没有什么区别?
e.g。
- (void)getNameFromWebForPerson:(Person *)p {
//start nsoperation
operationComplete(NSString *name){
p.name = name
[p save];
}
}
或
- (void)getNameFromWebForPerson:(ObjectID *)oid {
//start nsoperation
operationComplete(NSString *name){
Person *p = [fetchObjectForID:oid];
p.name = name
[p save];
}
}
答案 0 :(得分:3)
这完全取决于您在save
方法中运行的线程。应始终从同一线程/队列访问您为管理这些对象而创建的NSManagedObjectContext
实例。如果您需要/想要使用多个队列来管理传递ObjectID的对象,并且像在第二个示例中那样进行查询,建议您使用。