如何转储任何类型的所有属性内容

时间:2015-01-30 08:11:01

标签: swift core-data

让我说我有一些像这样的MO课程

class MonthGroup: NSManagedObject {

    @NSManaged var displayOrder: NSNumber
    @NSManaged var isdeleted: NSNumber
    @NSManaged var name: String
    @NSManaged var remarks: String?
    @NSManaged var requireUpdate: NSNumber
    @NSManaged var uid: String
    @NSManaged var exerRel: NSSet

}

我需要一个函数来迭代任何给定的Object属性并返回它们的值(如果存在! - 我不想要BAD ACCESS运行时错误)

这样的东西
func dumpObject(anyObject:AnyObject) {
    println("\(anyObject.className) has the following values:")

    for property in anyObject.properties {
        println("\(property.name) value: \(property.value)")
    }
}

1 个答案:

答案 0 :(得分:2)

每个NSManagedObject都有一个NSEntityDescription。其中有各种属性来检查实体。例如。 - propertiesByName– relationshipsByName- propertiesByName。这些是字典,其属性或关系的名称为键,NSAttributeDescription和/或NSRelationshipDescription对象为值。

extension NSManagedObject {
    func dumpProperties() {
        for (key, _) in entity.propertiesByName as [String : AnyObject] {
            println("\"\(key)\": \(valueForKey(key))")
        }
    }
}
相关问题