默认情况下未分配核心数据可转换属性?

时间:2013-08-25 09:23:23

标签: ios core-data

我有一个核心数据模型,其中包含名为location的Transformable属性。但是,当我使用initWithEntity:insertIntoManagedObjectContext:创建新实体时,locationnil

这是预期的行为吗?我期待预先为实体中的一个字段分配所有内存。如果这是预期的行为,建议的解决方法是什么?在location中为awakeFromInsert分配内存是个好主意吗?

1 个答案:

答案 0 :(得分:0)

是的,这是预期的。如果您没有向实体提供任何数据,它将如何知道要分配的大小。即便如此,它会如何处理这种分配,因为它不是一个真正的对象,你无法真正将其转换为一个。如果没有任何内容,您应该期望该属性保留nil。你不需要也不应该用一些默认的空分配填充它。

如果您要设置默认对象,那么这是另一回事。那么awakeFromInsert可能是一个不错的选择。问题是是否应将默认对象保存到商店中(因此可以搜索)。如果不是,您可能希望实现自定义访问器方法,以便在存储值为nil时返回默认对象。