映射核心数据模型属性类型

Posted

技术标签:

【中文标题】映射核心数据模型属性类型【英文标题】:Mapping a Core Data model property type 【发布时间】:2013-10-22 09:54:40 【问题描述】:

是否可以仅使用核心数据映射模型将核心数据模型的属性从一种类型映射到另一种类型,或者您是否需要定义自定义映射策略?

例如,假设我有一个名为 Show 的模型,其属性 identifier 类型为 Integer 32,我想将其映射到字符串。这只是一个假设的例子。您当然可以在 ManagedObject 子类中根据需要在代码中执行此操作。

我想知道一般情况下是否可行。

【问题讨论】:

你能解释一下为什么需要将它映射到一个字符串吗? 为什么我必须这样做并不重要。重要的是我将如何转换属性类型。我还有其他需要转换的属性。 我遇到了同样的问题,我一生都无法顺利过渡到我的映射策略,我所做的就是更改属性类型,一切都通过映射策略进行,但我无法弄清楚为什么版本 1 中的数据没有将值保存在版本 2 中的相应属性中。一列中的所有值都在版本 2 中的另一列中,而应该正确映射。你找到你的问题所在了吗? 【参考方案1】:

您始终可以通过编程将属性从一种类型转换为另一种类型。以你给定的例子:

// in your NSManagedObject subclass
@property (nonatomic) int32_t identifier;

// someplace else
NSNumber *identifierNumber = [NSNumber numberWithInt:managedObject.identifier];
NSString *identifierString = [identifierNumber stringValue];

【讨论】:

我知道我可以根据需要手动转换属性。这不是我要找的。我在问您是否可以使用映射模型来转换属性的类型

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

具有多个映射模型的复杂核心数据迁移

核心数据模型迁移

在核心数据映射模型的值表达式中使用“indexOfObject:”

更改某些实体中某些属性的类型后如何迁移核心数据模型?

如果我将模型中的属性类型从 NSString 更改为 NSDate,是不是需要核心数据迁移

Django的模型层