Ios 如何获得';预期';Swift中CoreData属性的类型?

Ios 如何获得';预期';Swift中CoreData属性的类型?,ios,xcode,swift,core-data,Ios,Xcode,Swift,Core Data,我正在使用Swift在Xcode版本6.4(6E35b)的iOS SDK 8.4中编写一个应用程序。我有一个.xcdatamodeld文件,其中有一个名为“Assessment”的实体。“评估”实体有几种类型的属性:String、Bool和Float。当我通过NSAttributeDescription中的attributeType访问器进行检查时,正如许多帖子中建议的那样,我收到一个有意义的nil值,因为我使用的实例没有将所有值映射到属性 根据苹果的参考: “NSAttributeDescri

我正在使用Swift在Xcode版本6.4(6E35b)的iOS SDK 8.4中编写一个应用程序。我有一个.xcdatamodeld文件,其中有一个名为“Assessment”的实体。“评估”实体有几种类型的属性: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是属性值的字典

您可以在此处查看所有AttributeType:


知道这是旧的,但想用我在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是属性值的字典

您可以在此处查看所有AttributeType:


你做了。。。使用
NSAttributeDescription
。在您描述的情况下,nil值实际上没有意义。你应该编辑你的问题,包括代码,显示你是如何试图做到这一点的,因为当你描述它时,你做了正确的事情,但不知何故得到了错误的答案。你做到了。。。使用
NSAttributeDescription
。在您描述的情况下,nil值实际上没有意义。你应该编辑你的问题,包括代码,显示你是如何尝试这样做的,因为当你描述它时,你做了正确的事情,但不知怎么得到了错误的答案。