是否有更有效的方法来检索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
}
答案 0 :(得分:3)
正如我所提到的,你所拥有的是正确的方法。还有其他方法,但我之前没有在Mac上,也无法试用它们。
更多“Swift-y”获取阵列的方式就像
let arrAttributeTitles = myStatSheet.entity.attributesByName.enumerated().map { $0.element.key }
这不会更有效率,因为它确实在做同样的事情,但它可能更像你在问的时候想到的。它仍然得到attributesByName
并迭代结果以获取命名属性的字符串。
可能值得注意的是,您的方法的参数类型可能是NSManagedObject
而不是StatSheet
,因为代码适用于任何实体类型的任何托管对象。