有没有比这更有效的方法来检索 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)
正如我提到的,你所拥有的是正确的方法。还有其他方法,但我之前没有使用 Mac,无法尝试。
一种更“Swift-y”的获取数组的方法是这样的
let arrAttributeTitles = myStatSheet.entity.attributesByName.enumerated().map { $0.element.key }
Run Code Online (Sandbox Code Playgroud)
这不会更有效,因为它实际上在做相同的事情,但它可能更多是您在询问时所想到的。它仍在获取attributesByName并迭代结果以获取命名属性的字符串。
值得注意的是,方法上的参数类型可以NSManagedObject代替StatSheet,因为代码适用于任何实体类型的任何托管对象。
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |