Menambahkan NSDictionary ke NSDictionary lainnya

88

Saya punya satu NSDictionarydan itu memuat UITableView. Jika pengguna menggulir lebih banyak, saya memanggil API dan menarik data baru. Data ini lagi-lagi dalam bentuk NSDictionary. Apakah mungkin menambahkan yang baru NSDictionaryke yang sudah ada?

slonkar.dll
sumber

Jawaban:

207

Anda mencari orang ini:

[NSMutableDictionary addEntriesFromDictionary:]

Pastikan UITableViewkamus Anda adalah NSMutableDictionary!

Lihat di sini

MGA
sumber
9
Ya, tapi mengapa Anda menginginkan entri kunci duplikat dalam kamus?
Johan Karlsson
2
Yang saya inginkan adalah -[NSDictionary dictionaryByAddEntriesFromDictionary:], tidak ada metode seperti itu NSDictionary.
DawnSong
Jelas, ini hanya operasi gabungan kamus, bukan entri duplikat. @JohanKarlsson
DawnSong
3
@DawnSong Saya hanya akan membuat kategori di NSDictionary jika saya jadi Anda dengan metode berikut: + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } Maaf untuk masalah format. StackOverflow tidak mengizinkan pemformatan kode multi-baris yang bersahabat dalam komentar.
BigSauce
Saya pikir pertanyaan sebenarnya adalah tentang bagaimana melakukan ini TANPA objek peralihan yang bisa berubah. Manfaat utama untuk hal semacam itu (yang ada untuk NSString, misalnya) adalah thread safe.
Motti Shneor
14

Gunakan NSMutableDictionary addEntriesFromDictionary untuk menambahkan dua kamus ke kamus baru yang bisa berubah. Anda kemudian dapat membuat NSDictionary dari yang dapat diubah, tetapi biasanya tidak perlu memiliki kamus yang tidak dapat diubah.

Licks panas
sumber
0

Apakah NSDictionary Anda penuh dengan NSDictionary lainnya? Sepertinya Anda membutuhkan NSMutableArray yang bisa Anda tambahkan ke NSDictionaries di akhir. Dengan asumsi Anda dapat mengontrol aliran data yang masuk dan tidak akan menjalankan risiko duplikat dalam array Anda, Anda pasti dapat menambahkan data tersebut.

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

Tanpa melihat bagaimana Anda menerapkannya, saya tidak dapat memberikan contoh kode yang lebih detail. Menambahkan item mudah dilakukan, tetapi ketahuilah bahwa itu hanya dapat dilakukan dengan versi Array atau Kamus yang bisa berubah. Semoga ini sedikit membantu.

Bill Burgess
sumber