【发布时间】:2012-11-11 06:52:24
【问题描述】:
我有 3 个使用 MOGenerator 生成的实体,我希望能够从他们的 objectID 中取回其中一个
我试过这个:
- (void)aMethod: (SpecialEntity1ID *)entityID
{
//This is a method from MagicalRecord but it doesn't matter(I think...).
NSManagedObjectContext *context = [NSManagedObjectContext MR_contextWithParent:[NSManagedObjectContext MR_defaultContext]];
SpecialEntity1 *entity1 = [context objectRegisteredForID:entityID]
//But this returns an NSManagedObject so it doesn't work...
}
有人可以帮我找回这个对象的 ID 吗?
由于我不知道如何使用 ID 来解决此问题,因此我通过创建一个以 NSString 作为参数而不是 SecialEntity1ID 的方法来解决此问题,该方法定义了此对象的一个属性(并且是唯一的)并获取对象。
我认为找回他的 ID 更好,所以有什么想法吗?
【问题讨论】:
-
为什么要取回子类对象?你想创建一个对象的新实体吗?还是检索核心数据中的特定对象?
-
我想取回它,因为我想在另一个线程上用它做点什么。而且由于在文档和其他地方都说 ManagedObject 不是线程安全的,所以我们必须使用它们的 ID,所以这就是为什么我试图从它的 ID 中取回它
-
我真的没有看到这个问题,但是在这个问题中他使用的是 NSManagedObject 而不是子类,也许它应该对我有帮助,但我看不到,你能告诉我路径吗:p?跨度>
-
好吧,看起来你已经得到了答案.. :) 答案看起来也和上面的链接一样。只是您需要进行类型转换。
标签: iphone objective-c ios core-data