0

だから私はNSSet、コアデータの関係から直接、このオブジェクトを持っています. これNSSetには、同じ基本オブジェクトのすべてのサブクラスであるオブジェクトが含まれます (RVSuperClassそれ自体を a のサブクラスと呼びましょうNSManagedObject)。

最終的な目的は、これらのオブジェクトを UITableView に再グループ化し、各種類のオブジェクト (RVSuperClassサブクラス) が 1 つのセクションを構成するようにすることです。

のサブクラスはそれほど多くありませんがRVSuperClass(したがって、オブジェクトの「種類」も多くありません)、NSSet(数百) には多くのオブジェクトが存在する可能性があります。したがって、for inループは私が求めているものではありません。

これを行う方法はありますか?よくわからないNSPredicateのですが、これが一番いいのでしょうか?結果を直接送信する方法はありNSFetchedResultsControllerますか?

4

2 に答える 2

0

私は自分の RVSuperClass のどのサブクラスを制御できるかを知っているので、うまくスケーリングできない比較的厄介なソリューションを使用することにしましたが、この場合はうまくいきます。

ではviewDidLoad、 のサブクラスごとRVSuperClassに述語を作成します。

[NSPredicate predicateWithFormat: @"self isKindOfClass: %@", [RVSubclassA class]];

filteredSetUsingPredicate:そこにを使用してNSSortDescriptor追加し、結果NSArrayをivar に追加します。NSMutableArrayここで、それぞれNSArrayがテーブルビューのセクションになります。

残念ながら、後でNSPredicateのサブクラスを追加する場合は、このコードを変更する (さらに別の を追加する) 必要がありRVSuperClassます。

于 2013-08-18T18:01:52.853 に答える