Aar*_*ler 19 core-data objective-c
我有一个名为Item的CoreData模型(托管对象):
@interface Item : NSManagedObject {
NSString * type;
}
@property (retain) NSString * type;
@end
Run Code Online (Sandbox Code Playgroud)
我还有两个Item的子类:
@interface Circle : Item
@end
@interface Square : Item
@end
Run Code Online (Sandbox Code Playgroud)
我通过type属性跟踪项目的子类.
当我获取我的时候Items,我会找回一系列项目.但我希望能够根据他们的动态对项目进行动态类型转换type.
CoreData本机支持吗?如果没有,有没有办法动态地对每个进行类型化Item?
我可以得到我想要的类,Item如:
Item * item = ...;
id klass = NSClassFromString(item.type);
Run Code Online (Sandbox Code Playgroud)
我只是不知道我怎么能投item出类型klass.
Yuj*_*uji 28
是的它是内置的.您不必手动完成.你甚至不必自己把这个type条目.
在Objective-C中,有超类/子类的概念.相应地,在核心数据中,存在父实体/子实体的概念.这可以在模型文件中指定.
在Core Data建模器中,创建两个实体Circle并Square继承您的Item实体.您可以parent在建模器中指定实体.然后,在建模中,指定自定义类Circle对你的实体Circle,类Square为实体Square.
然后,从数据库中获取托管对象时,将自动分配正确的类.阅读建模者的文档.
同样,一切都可以在建模器中完成,无需编写任何内容.
| 归档时间: |
|
| 查看次数: |
4788 次 |
| 最近记录: |