ios - 如何在 Swift 中获取 'expected' 类型的 CoreData 属性?

标签 ios xcode swift core-data

我正在使用 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/

相关文章:

ios - 只允许带有标签栏和 UInavigationcontroller 的方向肖像?

iOS 应用程序验证问题 : non-public API usage, libsqlite 使用

ios - Xcode 7.1上传App报错

ios - Swift 2 中的本地化

使用自定义枚举时 Xcode 经常崩溃

ios - CLLocation Manager 如何在一定距离后更新

ios - 服务因中止陷阱 : 6 in react-native IOS 而退出

ios - 由于未捕获的异常 'NSRangeException' 而终止应用程序,原因 : '*** -[__NSArray0 objectAtIndex:]: index 2 beyond bounds for empty NSArray

ios - 导入自己的swift框架

ios - 视频未在 iOS 5 中加载(使用无法识别的键调用)