NSDictionaryを他のNSDictionaryに追加する


87

私はNSDictionaryそれを持っています、そしてそれはロードしUITableViewます。ユーザーがますますスクロールする場合は、APIを呼び出して新しいデータを取得します。このデータもの形式ですNSDictionaryNSDictionary既存のものに新しいものを追加することは可能ですか?

回答:


205

あなたはこの男を探しています:

[NSMutableDictionary addEntriesFromDictionary:]

あなたのことを確認しUITableViewた辞書がありますNSMutableDictionary

ここで確認してください


9
はい、でも、なぜ辞書にキーの重複したエントリが必要なのですか?
Johan Karlsson、2014

2
私が欲しいのは-[NSDictionary dictionaryByAddEntriesFromDictionary:]、しかし、そのような方法はありませんNSDictionary
DawnSong

明らかに、これは辞書の和集合演算であり、重複したエントリではありません。@JohanKarlsson
DawnSong

3
@DawnSong次の方法であなたがいたら、NSDictionaryにカテゴリを作成するだけです + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } 。フォーマットの問題でごめんなさい。StackOverflowは、コメント内でわかりやすい複数行のコードのフォーマットを許可していません。
BigSauce 2016

本当の問題は、中間の可変オブジェクトなしでこれを行う方法についてだと思います。そのようなもの(たとえば、NSStringに存在する)の主な利点は、スレッドセーフであることです。
Motti Shneor

14

NSMutableDictionary addEntriesFromDictionaryを使用して、2つの辞書を新しい可変辞書に追加します。その後、変更可能なNSDictionaryからNSDictionaryを作成できますが、通常、辞書を変更不可にする必要はありません。


1

あなたのNSDictionaryは他のNSDictionariesでいっぱいですか?最後にNSDictionariesを追加できるNSMutableArrayが必要なようです。受信するデータのフローを制御でき、配列が重複するリスクを負わないと想定すると、データを確実に追加できます。

NSMutableArray *array = [[NSMutableArray alloc] init];
arrayCount = [array count]; // check the item count
[array addObject:dictToAppend];

あなたがそれをどのように実装しているかを見ていないと、より詳細なコード例を提供できません。アイテムの追加は簡単ですが、変更可能なバージョンの配列または辞書でのみ実行できることを知っています。これが少し役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.