如何在 Swift 中获取 CoreData 属性的“预期”类型?
Posted
技术标签:
【中文标题】如何在 Swift 中获取 CoreData 属性的“预期”类型?【英文标题】:How to get the 'expected' type of a CoreData attribute in Swift? 【发布时间】:2015-08-14 13:57:14 【问题描述】:我正在使用 Swift 在 Xcode 版本 6.4 (6E35b) 的 ios SDK 8.4 中编写应用程序。我有一个 .xcdatamodeld 文件,其中包含一个名为“评估”的实体。 'Assessment' 实体有几个类型的属性:String、Bool 和 Float。当我按照许多帖子中的建议通过 NSAttributeDescription 中的 attributeType
访问器进行检查时,我收到一个有意义的 nil 值,因为我使用的实例没有将所有值映射到属性。
来自苹果的参考: "NSAttributeDescription 类用于描述由 NSEntityDescription 实例描述的实体的属性。"
如何以编程方式获取我在 .xcdatamodeld 文件中定义的属性类型?
【问题讨论】:
你这样做...使用NSAttributeDescription
。在您描述的情况下, nil 值实际上没有意义。您应该编辑您的问题以包含显示您如何尝试执行此操作的代码,因为正如您所描述的那样,您正在做正确的事情,但不知何故得到了错误的答案。
【参考方案1】:
知道这是旧的,但想用我在 Swift 4 中如何做的答案来更新它:
let attributeDescription = myDataSource.entity.attributesByName
for thisDescription in attributeDescription
if thisDescription.1.attributeType == .integer16AttributeType
print(thisDescription.0)
其中 myDataSource 是我从 Core Data 获取的 NSManagedObject。在我的示例中,我希望创建一个网格,其中 max col 是我的托管对象的最高 int 值。 attributeDescription 是一个元组,0 提供您给属性的字符串标题,1 是属性值的字典。
你可以在这里查看所有的属性类型:
https://developer.apple.com/documentation/coredata/nsattributetype
【讨论】:
以上是关于如何在 Swift 中获取 CoreData 属性的“预期”类型?的主要内容,如果未能解决你的问题,请参考以下文章
在CoreData ios swift3中只获取表的几个属性
如何使用神奇的 Records Library Swift 获取属性中的所有值