Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个核心数据模型,其中包含一个名为location. 但是,当我使用 , 创建一个新实体时initWithEntity:insertIntoManagedObjectContext:,location是nil.
location
initWithEntity:insertIntoManagedObjectContext:
nil
这是预期的行为吗?我期望预先分配实体中字段的所有内存。如果这是预期的行为,解决此问题的推荐方法是什么?分配内存是location个awakeFromInsert好主意吗?
awakeFromInsert
是的,这是意料之中的。如果你没有给实体任何数据,它怎么知道要分配什么大小。即使那样,它会如何处理该分配,因为它不是一个真实的对象,你不能真正将它转换成一个对象。nil如果那里什么都没有,您应该期望该财产保留。您不需要也不应该用一些默认的空分配来填充它。
如果您有一个要设置的默认对象,那就另当别论了。那么awakeFromInsert可能是一个不错的选择。问题是是否应该将默认对象保存到存储中(因此可以搜索)。如果不是,您可能希望实现自定义访问器方法以返回默认对象(如果存储值为nil.