2014-01-11 91 views
1

我有作爲NSDate對象存儲在覈心數據中的日期。當我嘗試檢索他們使用獲取請求和 - (id)valueForKey:我得到一個整數,而不是一個NSDate對象。使用KVC從核心數據檢索NSDate對象的問題

NSError *error = nil; 
NSArray *results = [managedObjectContext executeFetchRequest:request error:&error];  
NSManagedObject *entity = [results lastObject]; 
NSDate *date = [entity valueForKey:@"updated"]; 

當我使用點符號如myEntity.updated我正確得到一個NSDate對象但不當我使用一個KVC方法。

我想使用的原因 - (id)valueForKey:是因爲我在覈心數據中的每個實體上運行此代碼,我不想明確定義每個實體。或者,我可以編寫一堆if語句來測試isKindOfClass,但是這需要很多代碼,並且看起來有點駭人聽聞。

任何建議將不勝感激。

回答

3

您不得調用管理對象屬性「更新」,這與 isUpdated方法NSManagedObject衝突。

如果您打電話給屬性「已刪除」,則會出現類似的問題, 比較Core Data NSPredicate "deleted == NO" does not work as expected進行簡短分析。

重命名屬性應該可以解決您的問題。不幸的是,Xcode不會對此提出警告。