2017-05-30 11 views
0

このNSMutableArrayにはMessageオブジェクトが含まれています。メッセージにはいくつかのプロパティがあり、そのうちの1つはTheIDです。オブジェクトのプロパティに基づいてNSMutableArrayから重複を削除します。

だから、私の配列内の次のオブジェクトを考慮してください。

Message1.TheID = 1 
Message1.title = @"whatever" 

Message2.TheID = 2 
Message2.title = @"doesn't matter" 

Message3.TheID = 1 
Message3.title = @"I don't care" 

は私が重複TheIDsを取り除きたいです。私は多くの類似の質問が、どれを見てきた私はメッセージ1とメッセージ2(またはメッセージ2とMessage3)を含む配列で終わるような方法で私の配列をフィルタリングするための最良の方法だろう何

解決策の私の状況に適用されるようです。

おかげ

答えて

0

あなたは、あなたのメッセージの配列を反復処理として使用されるIDを追跡するためにNSSetを使用することができます。 IDの新しい配列にメッセージを追加するだけでは、セットに含まれていません。

NSMutableSet *ids = [NSMutableSet set]; 
NSMutableArray *newMessages = [NSMutableArray array]; 
for (Message *message in messagesArray) { 
    if (![ids containsObject:message.theID]) { 
     [ids addObject:message.TheID]; 
     [newMessages addObject:message]; 
    } 
} 
+0

ありがとうございました。唯一の問題は、TheIDがint(オブジェクトではない)であることです。私は別のユニークなプロパティを使用します。 – Sjakelien

+0

このIDを使用できます。 NSSetで使用する前にNSNumberにラップしてください。 – rmaddy

関連する問題