我有一個NSManagedObject類,具有updatedOn
屬性。我希望能夠實現這個邏輯,以便在課程的willSave
方法中設置它的值。當我試圖做到這一點時,我發現willSave永遠不會被我的這個類的實例調用。NSManagedObject的willSave不會被無效對象調用
經過一番調查,我確定willSave
方法沒有被調用新創建的實例,其中updatedOn
未初始化爲任何值。由於此屬性未設置爲可選,因此驗證失敗,並且顯然只有實例有效時纔會調用該方法。
我的問題是這樣的:有做這種事情的最佳做法嗎?我是否需要使updatedOn
屬性成爲可選項才能解決此問題?或者我應該實現我的課程的awakeFromInsert
方法在那裏設置初始值,然後在最終調用willSave
方法時覆蓋該值?還是有一些更簡單的方法更有意義?
感謝您的答案Rory ...我曾考慮過使用NSManagedObjectContextWillSaveNotification,但它似乎不太合適,因爲只有一個實體需要時間戳,而且我會通過一組相當大的對象來搜索異味,以找到相對較少的我需要。我決定使用在awakeFromInsert中設置的必需屬性,並在willSave中再次設置。這是一個輕微的煩惱,我必須將它放在兩個位置,但它似乎是我可以使用的最佳方式。 – 2012-07-21 21:55:04