【问题标题】:Array of NSManagedObject attributesNSManagedObject 属性数组
【发布时间】:2011-05-10 09:51:11
【问题描述】:

我想为我的NSManagedObject 获取一组属性,以便我可以使用 KVO 导出它们。我可以手动创建一个数组,然后迭代它,但是,我想自动获取这个列表,然后迭代。

【问题讨论】:

    标签: ios objective-c cocoa core-data key-value-observing


    【解决方案1】:

    一个 NSManagedObject 有一个与之关联的实体。使用NSEntityDescription-attributesByName-relationshipsByName。您将从这些方法中的每一个中得到一个字典。只需向听写者询问他们的-allKeys

    【讨论】:

    • 谢谢 Josh,我添加了另一个标签。我在 4.1 SDK 中看不到属性键。这在 iPhone 上不可用吗?
    • 正确。这就是为什么标记很重要。 :-) NSEntityDescription 没有那么直接,但效果很好。猜想:我提到的 NSObject 方法似乎只适用于 KVO 魔法,这在 iOS 上不可用。
    • 完美!我不敢相信我忽略了这一点。
    【解决方案2】:

    谢谢约书亚。这是我使用的代码,以防有人想看一个困难的例子:

    NSString *entityName = NSStringFromClass([myEntity class]);
    NSEntityDescription *entityDescription = [self entityDescriptionWithEntityName:entityName];
    NSDictionary *attributes = [entityDescription attributesByName];
    NSArray *attributeNames = attributes.allKeys;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多