2012-08-17 122 views
1

我需要一種方法來處理NSManagedObject子類中的動態屬性。我現在所做的是檢查對象的date(NSDate類)屬性是否被[NSDate now]傳遞。如果該日期屬性已通過,則該對象將被標記爲overdue核心數據 - 處理動態屬性

所以每當我需要顯示對象是否過期,我需要做上面的比較。所以這個屬性可以切換狀態過期而不是過期。這樣做一直都是錯誤的。有沒有辦法做到這一點automagically? I. e。每次我從數據庫中獲取對象時,Core Data會爲我執行上述這個方法?

+1

你不應該堅持從其所獲得的數據一起派生屬性:看上去像「沒有逾期」在時取回可能成爲逾期一秒鐘後,但你的程序將不知道。 – dasblinkenlight 2012-08-17 14:27:24

+0

因此,每次我需要檢查一個對象是否過期時,我需要手動執行我的邏輯?我認爲Core Data有一些方法可以將它保存爲「智能」屬性(如OS X中的「智能」文件夾)。 – 2012-08-17 14:35:33

+0

我不知道如何在Core Data方法中實現* this,但是在執行過程中,每次您打電話檢查過期狀態時都應執行檢查。 – dasblinkenlight 2012-08-17 14:39:59

回答

0

你可以實現你通過使用NSManagedObject子類,並臨時屬性在找什麼。

您想要的動態屬性可以通過創建'transient'屬性來實現。您可以通過檢查瞬態選項來設置屬性瞬態。瞬態屬性不會持續到本地商店。

通過使用新的文件嚮導,它位於類別「核心數據」下創建一個NSManagedObject子類的實體。

在創建類,只需要創建一個getter方法爲您的動態屬性返回你想要什麼。

現在,您可以在提取請求期間使用此功能。

0

你不應該試圖堅持的逾期狀態,因爲它依賴於一個變量,它總是在不斷變化。如果您需要根據下一個過期對象執行某些操作,只需獲取未過期的數據,按日期對其進行排序,並找到下一個過期的數據。然後,您可以執行dispatch_after以在記錄逾期時執行您的應用程序的任何操作。