2011-07-11 33 views
0

如何使用fetched屬性創建排序數組?我是謂詞編程的新手。ios - 在CoreData中排序獲取的屬性

假設有兩個實體:'MyEntity'和'Image'。 'MyEntity'與'圖像'有一對多的關係,稱爲'圖像'。 '圖像'有兩個屬性:'圖像'和'索引',我想使用'索引'作爲排序圖像的排序鍵。

我想在'MyEntity'上有一個提取屬性'sortedImages',它將返回'images'的排序版本。

我曾經做的是加載所有的圖像,並將它們排序在內存中並存儲結果,但我發現這可能會消耗太多的內存。

- (NSArray *)sortedImages { 
    if (!sortedImages) { 
     NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES]; 
     sortedImages = [self.images sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]]; 
     [sortedImages retain]; 
    } 
    return sortedImages; 
} 
+0

圖像屬性是實際圖像數據嗎?如果是這樣,你可能想要做的是存儲文件路徑而不是實際的數據。如果你這樣做,那麼你不應該遇到任何與內存有關的問題,你可以讓你查看使用你存儲的文件路徑加載圖像。 – sosborn

+0

@sosborn是的。這些圖像是從互聯網上加載的,它們很小但很多。我會考慮你的解決方案,但我仍然想知道如何使用fetched屬性,因爲我有許多其他可能需要更改的已排序實體。 –

回答

1

不知道如果一個fetchedProperty這裏是正確的解決方案,但您可以創建父實體的managedObjectContext的NSFetchRequest和關鍵,「指數」使用NSSortDescriptor。這應該返回一個「具有故障功能」的圖像對象排序數組。