【问题标题】:Get attribute of NSManagedObject parent class instead of an Entity获取 NSManagedObject 父类的属性而不是实体
【发布时间】:2016-11-29 16:21:11
【问题描述】:

我有一个包含三个实体的 Core Data model,其中一些实体具有相同的 attributes。我可能应该改进我的模型,但我想知道是否有办法通过父类访问 NSManagedObject 实体的属性。

这是一个例子: 我有三个名为“Object1”、“Object2”和“Object3”的NSManagedObject 实体。它们都有一个名为“attributeOfObject”的attribute。我有一个if statement,在那里我检查了我的 ManagedObject 的类。

if ([self.managedObject isKindOfClass:[Object1 class]]) {

    // Here I would like to change the attribute of the Object1 NSManagedObject:
    [self.managedObject setAttributeOfObject:...];

if ([self.managedObject isKindOfClass:[Object2 class]]) {

    [self.managedObject setAttributeOfObject:...]; // for Object2

and so on...

但是,这样是不可能的,因为 NSManagedObject 类没有这个属性。我想知道是否有可能:

[self.managedObject.Entityname setAttributeOfObject...]

还是这样的?

【问题讨论】:

    标签: objective-c core-data attributes entity nsmanagedobject


    【解决方案1】:

    使用NSManagedObject 及其子类,您始终可以使用键值编码来访问实体的属性。如果你的属性叫做attributeOfObject,你可以写

    [self.managedObject setValue:someValue forKey:@"attributeOfObject"];
    

    如果您需要查找属性,可以询问实体:

    NSDictionary *attributes = [[self.managedObject entity] propertiesByName];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-18
      • 2015-10-29
      相关资源
      最近更新 更多