0

メッセージのテーブルにデータがあります。これらのメッセージは、ある種のチャット メッセージです。今、私はこのような会話の形でデータを取得したい...

a 、b、c、d、e、f、および m 人のユーザーがいるとします。mは自分用です。現在、a、b、c、d、e、f、およびmからの送信者を持つメッセージがあり、受信者も同じです。すべてのメッセージには、送信者または受信者としてmがあり、他のユーザーからのオブジェクトが 1 つあります。今、私はデータを次のようにグループ化したい..

グループA

に送信された、または から受信されメッセージを持つすべてのメッセージ

グループB

bに送信されたメッセージまたは b から受信されたメッセージを持つすべてのメッセージ

グループC

cに送信されたメッセージまたは c から受信されたメッセージを持つすべてのメッセージ

等々....

誰でも私がそれを行う方法を提案できますか? いくつかの質問を調べましたが、答えが見つかりませんでした。助けてくれる人は誰でもかなりの価値があります。

4

2 に答える 2

1

Fetched Results Controller を使用する場合、一部のメッセージが複数回含まれることを考慮する必要があります。

User1)エンティティを取得し、並べ替えますname

2) セクション数:fetchedObjects.count

3) セクションの行数:

NSSet *allMessages = [user.receivedMessages setByAddingObjectsFromSet:user.sentMessages];
return allMessages.count;

4) セルに入力します。

NSSet *allMessages = [user.receivedMessages setByAddingObjectsFromSet:user.sentMessages];
NSArray *sorted = [allMessages sortedArrayUsingDescriptors:@[[NSSortDescriptor 
            sortDescriptorWithKey:@"message.topic" ascending:YES]]];
Message *m = sorted[indexPath.row];

Userこれは、並べ替えられた を返す一時的なプロパティを追加することで簡素化できますallMessages。これをデータソース メソッドで直接行うのはあまり効率的ではないことに注意してください。要点を説明するためにここに記載しました。

于 2013-08-23T11:31:04.237 に答える
-1

viewControllerの結果にある場合は、NSFetchedresultscontrollerを使用できます。このオブジェクトには、結果データのセクションと行が含まれています

于 2013-08-23T11:17:38.597 に答える