我想從我的部分名稱的一對多關係中獲取一組值。我的fetchRequest實體被設置爲單個實體,並且我想爲sectionNameKeyPath使用(例如)@「to_many.attribute1」。但是,我只想使用其中的某個子集來排序實體。如何從一對多關係的子集中獲取sectionNameKeyPath?
是否有一種方法可以將謂詞添加到sectionNameKeyPath?
或者,我恐怕我可能需要重新創建我的數據模型,以便數據更容易訪問嗎?
我想從我的部分名稱的一對多關係中獲取一組值。我的fetchRequest實體被設置爲單個實體,並且我想爲sectionNameKeyPath使用(例如)@「to_many.attribute1」。但是,我只想使用其中的某個子集來排序實體。如何從一對多關係的子集中獲取sectionNameKeyPath?
是否有一種方法可以將謂詞添加到sectionNameKeyPath?
或者,我恐怕我可能需要重新創建我的數據模型,以便數據更容易訪問嗎?
當我的sectionNameKeyPath需要引用非平凡的東西時,我使用的一個選項是向我的模型中添加一個新屬性並將其標記爲Transient。
然後,您可以向託管對象添加一個類別,該類別具有一個根據您的規則計算字段的getter。
@implementation MyObject (SectionKeyPathAdditions)
-(NSDate *)toManyAttribute1Date // This is the new transient attribute name
{
NSDate *dynamicReturnDate = [NSDate date];
// use app logic to grab the subset of valid dates from attribute1
return dynamicReturnDate;
}
你謂詞會是這樣的:
ALL to_many.attribute1=="something"
的一切及任何運營商的搜索設置這是何等的多對多關係的回報。雖然,你不能菊花鏈,例如
ALL to_many.another_to_many.attribute1
這聽起來很有希望!謝謝! – Sage 2011-03-04 21:03:11
雖然這會起作用,但對於大量數據而言,它可能需要大量資源。瞬態方法要求在對瞬態值進行評估之前對對象進行實例化。 – TechZen 2011-03-05 15:08:02