2011-07-11 13 views
0

フェッチされたプロパティを使用してソートされた配列を作成する方法?私は述語のプログラミングに新しいです。CoreDataのiosソートされたフェッチされたプロパティ

「MyEntity」と「Image」の2つのエンティティがあるとします。 「MyEntity」は「イメージ」と「イメージ」との関係が多すぎます。 'イメージ'には、 'イメージ'と 'インデックス'という2つの属性があります。イメージを並べ替えるための並べ替えキーとして 'インデックス'を使用します。

'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はい。画像はインターネットから読み込まれ、それらは小さくても多くあります。私はあなたのソリューションを検討しますが、私は変更される必要があるかもしれない多くの他のソートされたエンティティがあるので、フェッチされたプロパティの使い方を知りたいです。 –

答えて

1

fetchedPropertyがここに適切なソリューションですが、親エンティティのmanagedObjectContextにNSFetchRequestを作成し、キー、「インデックス」にNSSortDescriptorを使用できるかどうかわかりません。それは、画像オブジェクトのソートされた「故障可能な」配列を返すべきです。

関連する問題