我有一个NSManagedObject派生类OrderMO具有NSDate类型的属性OrderDate。我希望OrderDate的默认值是没有订单关联的第一个月的第一个月的第一个星期一。如何根据现有NSManagedObject值在NSManagedObject派生类中设置默认值?
要做到这一点,我重写NSManagedObject的awakeFromInsert功能和设置订购日期的价值是这样的:
- (void) awakeFromInsert
{
[super awakeFromInsert];
[self setValue:[self getNextOrderDate] forKey:@"OrderDate"];
}
自定义功能getNextOrderDate计算适当的日期和返回。问题是getNextOrderDate调用了executeFetchRequest,这在awakeFromInsert调用期间显然是不允许的。我试过做this article中描述的内容,但它没有解决我的问题。在那篇文章中,通过调用self performSelector将对executeFetchRequest的调用延迟到NSManagedObject被初始化之后,问题就解决了。在我的情况下,我只得到2个垃圾行。
我认为我的订单ArrayController的子类重写添加函数,但真的不知道该怎么做。
有人可以告诉我正确的方式来初始化一个NSManagedObject属性基于同一个实体类型的现有NSManagedObjects,在同一个数组与值取决于现有对象的值?