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

时间:2018-03-24 15:31:20

标签: swift core-data

是否有更有效的方法来检索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
}

1 个答案:

答案 0 :(得分:3)

正如我所提到的,你所拥有的是正确的方法。还有其他方法,但我之前没有在Mac上,也无法试用它们。

更多“Swift-y”获取阵列的方式就像

let arrAttributeTitles = myStatSheet.entity.attributesByName.enumerated().map { $0.element.key }

这不会更有效率,因为它确实在做同样的事情,但它可能更像你在问的时候想到的。它仍然得到attributesByName并迭代结果以获取命名属性的字符串。

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