我有一些NSManagedObjects,我想編寫方法來排序和比較它們的屬性。用分類比較方法裝飾核心數據
我的問題是,由於Core Data將屬性定義爲@dynamic,因此無法在編譯時引用它們。這意味着,裝飾的NSManagedObject用這樣的方法:
- (NSComparisonResult) compareDateAndTime:(Event *) event {
return [originDate compare:[event originDate]];
}
會導致編譯器不能夠找到一個名爲「originDate」屬性。 上述方法被稱爲像這樣:
NSArray *events = [[NSArray alloc]
initWithArray:[unsortedEvents sortedArrayUsingSelector:@selector(compareDateAndTime:)]];
我可以斷言或fetchedResultController去,但我想建立這些作爲 方法我自己,因爲我對每個NSManagedObject相同NSObjects。這個NSObject充當一個臨時對象,它在NSManagedObject上設置屬性然後持久化之前傳遞並填充。我還有一些其他功能,如專門的訪問器,我想添加到NSManagedObject。 (1)**是否有一種通用/最佳實踐的方式來裝飾NSManagedObjects的方法和函數**(2)**並讓Xcode在「重新構建」一個實體的類時不覆蓋它們?
謝謝你的任何幫助或「RTFM」給出:)
我回答了您的問題(1和2),但我同意弗蘭克的看法,我不明白您最初描述的「問題」。編譯器應該允許你使用聲明的屬性。你是否包含爲實體生成的類的頭部? – gerry3 2009-12-17 00:36:45