Swift:反映NSManagedObject的子类的属性

时间:2015-12-22 08:59:52

标签: swift core-data reflection nsmanagedobject mirror

使用Mirror访问NSManagedObject的子类的内部结构时,将忽略所有托管变量。

public class Foo: NSManagedObject {
   @NSManaged var bar: String?
}

var f: Foo = ...
// ... creating a Foo in a valid context ...

let mirror = Mirror(reflecting: f)
for c in mirror.children {        // children count == 0
  print("\(c.label!):\(c.value)") // never executed
}

如何在NSManagedObjects上使用反射机制。

1 个答案:

答案 0 :(得分:5)

合成Core Data属性的访问器方法 在运行时动态。

您可以使用枚举核心数据实体的属性 entity的{​​{1}}属性NSManagedObject 并且具有NSEntityDescription属性。

一个简单的例子:

attributesByName