我有一個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,在同一個數組與值取決於現有對象的值?