-1

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

这是预期的行为吗?我期望预先分配实体中字段的所有内存。如果这是预期的行为,解决此问题的推荐方法是什么?分配内存是locationawakeFromInsert好主意吗?

4

1 回答 1

0

是的,这是意料之中的。如果你没有给实体任何数据,它怎么知道要分配什么大小。即使那样,它会如何处理该分配,因为它不是一个真实的对象,你不能真正将它转换成一个对象。nil如果那里什么都没有,您应该期望该财产保留。您不需要也不应该用一些默认的空分配来填充它。

如果您有一个要设置的默认对象,那就另当别论了。那么awakeFromInsert可能是一个不错的选择。问题是是否应该将默认对象保存到存储中(因此可以搜索)。如果不是,您可能希望实现自定义访问器方法以返回默认对象(如果存储值为nil.

于 2013-08-25T11:19:46.500 回答