我有一個父<-->>
子關係(對多)。 以及關係是,當我需要獲取所有的孩子(一個或多個),Parent.children = (NSSet *) child(s)
最簡單的獲取請求獲取'最新'單個實體 - 核心數據
有些時候,我只需要只一個基於實體Child的時間戳屬性最新實體。
我在徘徊什麼將是最簡單的方式來獲取它,比創建一個提取請求和設置提取限制更容易一個,並使用排序描述符基於timeStamp來排序它。
有沒有更簡單的方法?只是呼籲也許:
[Parent.children firstObject];
原因是我需要通過應用程序的生活多次獲取它。在某些情況下,我雖然我不得不取得最新的Child實體-(void)awakeFromFetch() of a Parent Entity
..這就是爲什麼我想有一種方式比任何其他內存方面更容易。
時,取子實體,我還挺取其中一束是孩子使用這種斷言2個或多個父實體:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"forParent IN %@", [Array of Parents]];
從所得的NSSet,因爲我會得到所有爲所述對象所需的子實體,如果我可以根據其時間戳屬性(NSDate)分配指向最新子的指針將會非常方便。
很顯然,當我得到NSSet結果後,我可以迭代每個孩子,並分配一個指向我在NSSet中找到的最新實體的指針,但它看起來非常辛苦,但我必須分配一個指針一個特定的父的最新實體,迭代可能可能具有超過一百個實體的NSSet似乎是bad programming
。
任何想法?
而是限制1和排序,我已經用了類似的問題NSExpression與'最大:'功能。其他解決方案是在父模型上創建一個latestChild屬性,並在創建每個新子時進行設置。這不是理想的,但工作,它是最快的解決方案。 –
你能否詳細介紹一下位男士?我沒有完全得到'在父實體上創建模型' – user134611
讓我解釋一下:)你有兩個實體 - 父和子。將名爲latestChild的新屬性添加到模型中的Parent實體(由xcode定義的MOM),並將此latestChild設置爲最近添加到Parent.childrens的子級。所以,finallyChild和child是直接關係,而不是通過謂詞或迭代計算關係。 –