获取Core Data实体的所有属性名称;迅速

Pru*_*goe 5 core-data swift

有没有比这更有效的方法来检索 NSManagedObject 属性的所有名称/标题:

func getAllAttributeTitles(_ myStatSheet:StatSheet) -> Array<String> {

    let dictAttributes = myStatSheet.entity.attributesByName
    var arrAttributeTitles:Array<String> = []

    for (key, _) in dictAttributes {
        arrAttributeTitles.append(key)
    }

    return arrAttributeTitles
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*ton 5

正如我提到的,你所拥有的是正确的方法。还有其他方法,但我之前没有使用 Mac,无法尝试。

一种更“Swift-y”的获取数组的方法是这样的

let arrAttributeTitles = myStatSheet.entity.attributesByName.enumerated().map { $0.element.key }
Run Code Online (Sandbox Code Playgroud)

这不会更有效,因为它实际上在做相同的事情,但它可能更多是您在询问时所想到的。它仍在获取attributesByName并迭代结果以获取命名属性的字符串。

值得注意的是,方法上的参数类型可以NSManagedObject代替StatSheet,因为代码适用于任何实体类型的任何托管对象。