When accessing the inner structure of a subclass of NSManagedObject using a Mirror, all managed variables are ignored.
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
}
How can reflection mechanisms used on NSManagedObjects.
The accessor methods for Core Data properties are synthesized dynamically at runtime.
You can enumerate the attributes of a Core Data entity using the
entity
property ofNSManagedObject
which is aNSEntityDescription
and has aattributesByName
property.A simple example: