我正在使用 Swift 在 Xcode 版本 6.4 (6E35b) 中的 iOS SDK 8.4 中编写一个应用程序。我有一个 .xcdatamodeld 文件,其中有一个名为“评估”的实体。 “评估”实体有几个类型的属性:String、Bool 和 Float。当我按照许多帖子中的建议通过 NSAttributeDescription 中的 attributeType
访问器进行检查时,我收到了一个有意义的 nil 值,因为我使用的实例没有将所有值映射到属性。
来自苹果的引用资料: “NSAttributeDescription 类用于描述由 NSEntityDescription 实例描述的实体的属性。”
如何以编程方式获取我在 .xcdatamodeld 文件中定义的属性类型?
最佳答案
知道这是旧的,但想用我在 Swift 4 中如何做的答案来更新它:
let attributeDescription = myDataSource.entity.attributesByName
for thisDescription in attributeDescription {
if thisDescription.1.attributeType == .integer16AttributeType {
print(thisDescription.0)
}
}
myDataSource 是我从核心数据中获取的 NSManagedObject。在我的示例中,我正在寻找一个网格,其中 max col 是我的托管对象的最高 int 值。 attributeDescription 是一个元组,0 提供您赋予属性的字符串标题,1 是属性值的字典。
您可以在此处查看所有属性类型:
https://developer.apple.com/documentation/coredata/nsattributetype
关于ios - 如何在 Swift 中获取 'expected' 类型的 CoreData 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32011889/