核心数据属性类型列表?

Posted

技术标签:

【中文标题】核心数据属性类型列表?【英文标题】:List of Core Data attribute types? 【发布时间】:2012-05-11 06:40:53 【问题描述】:

我搜索了 Core Data 属性类型,但没有成功。

当我打开我的实体和属性时,有几种类型:

    整数 双 字符串 布尔值

等等

我很感兴趣是否有一些 Apple 页面解释了每个属性的使用类型。

例如,我需要一个属性类型,我将在其中保存大约 1000 个字符的字符串。对于这种类型的插入,我应该使用哪种属性类型?

感谢您的帮助

【问题讨论】:

【参考方案1】:

NSAttributeDescriptionclass reference 常量部分给出:

typedef enum 
NSUndefinedAttributeType = 0,
NSInteger16AttributeType = 100,
NSInteger32AttributeType = 200,
NSInteger64AttributeType = 300,
NSDecimalAttributeType = 400,
NSDoubleAttributeType = 500,
NSFloatAttributeType = 600,
NSStringAttributeType = 700,
NSBooleanAttributeType = 800,
NSDateAttributeType = 900,
NSBinaryDataAttributeType = 1000,
NSTransformableAttributeType = 1800,
NSObjectIDAttributeType = 2000
 NSAttributeType;

【讨论】:

你能告诉我有多少字符适合一位吗?现在我想我应该使用属性类型字符串来插入 1000 个字符的字符串。 @Croios 使用NSStringAttributeType 看起来是存储 1000 个字符的正确选择。对每个值大小的任何限制都可能取决于底层存储机制。 你能告诉我1位能容纳多少个字符吗? (1 个字符?) @CroiOS 不,唯一可能适合 1 位的是布尔值。使用 UTF-8 编码时,单个字符(通常)需要 1 到 3 个字节,使用 UTF-16 编码时需要 2 到 4 个字节。 我怎样才能计算出哪种属性类型对应于哪种插入类型(来自上面的列表,大小以位为单位)?【参考方案2】:

您可以找到列表here,具体描述在常量部分。

Specifically, typedef enum 
NSUndefinedAttributeType = 0,
NSInteger16AttributeType = 100,
NSInteger32AttributeType = 200,
NSInteger64AttributeType = 300,
NSDecimalAttributeType = 400,
NSDoubleAttributeType = 500,
NSFloatAttributeType = 600,
NSStringAttributeType = 700,
NSBooleanAttributeType = 800,
NSDateAttributeType = 900,
NSBinaryDataAttributeType = 1000,
NSTransformableAttributeType = 1800,
NSObjectIDAttributeType = 2000
 NSAttributeType;

这意味着您可以使用的类型是:

未定义/瞬态、short、integer、long、float、double、NSDecimalNumber、NSString、Boolean、NSDate、NSData、值转换器和 id

【讨论】:

是否有任何链接可以解释有多少字符适合例如属性字符串? @CroiOs - 它是无限的 - 请参阅 sqlite documentation。

以上是关于核心数据属性类型列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行时检查核心数据属性类型?

核心数据和自定义属性类型

核心数据 - 更改属性类型

索引日期类型的核心数据属性是不是有意义?

识别核心数据属性类型

快速核心数据迁移以更改属性类型