Если вы похожи на меня и пытаетесь решить эту проблему в Swift, вот как я это сделал.
SWIFT 3:
let request:NSFetchRequest<ENTITY_NAME>
if #available(iOS 10.0, *){
request = ENTITY_NAME.fetchRequest() as! NSFetchRequest<ENTITY_NAME>
}else{
request = NSFetchRequest<ENTITY_NAME>(entityName: "ENTITY_NAME")
}
do{
let entities = try YOUR_MOC.fetch(request)
for item in entities{
for key in item.entity.attributesByName.keys{
let value: Any? = item.value(forKey: key)
print("\(key) = \(value)")
}
}
}catch{
}
Swift 2:
let request = NSFetchRequest(entityName: "ENTITY_NAME")
do{
let entities = try YOUR_MOC.executeFetchRequest(request) as! [YOUR_ENTITY]
for item in entities{
for key in item.entity.attributesByName.keys{
let value: AnyObject? = item.valueForKey(key)
print("\(key) = \(value)")
}
}
}catch{
}
Если вы также хотите получить ключ / значения сущностей отношений, вам следует использовать propertiesByName
вместо attributesByName
, например, так:
SWIFT 3:
for key in item.entity.propertiesByName.keys{
let value: Any? = item.value(forKey: key)
print("\(key) = \(value)")
}
SWIFT2:
for key in item.entity.propertiesByName.keys{
let value: AnyObject? = item.valueForKey(key)
print("\(key) = \(value)")
}
Просто не забудьте соблюдать осторожность со значением, поскольку оно является NSManagedObject.