NSDictionary'yi diğer NSDictionary eklemek


88

Bir tane var NSDictionaryve doluyor UITableView. Bir kullanıcı daha fazla kaydırırsa, API'yi çağırırım ve yeni verileri çekerim. Bu veriler yine bir NSDictionary. Yenisini NSDictionarymevcut olana eklemek mümkün mü ?

Yanıtlar:


207

Bu adamı arıyorsunuz:

[NSMutableDictionary addEntriesFromDictionary:]

UITableViewSözlüğünüzün bir NSMutableDictionary! Olduğundan emin olun !

Burada kontrol et


9
Evet, ama neden bir sözlükte yinelenen anahtar girişleri istiyorsunuz?
Johan Karlsson

2
-[NSDictionary dictionaryByAddEntriesFromDictionary:]Ancak istediğim, içinde böyle bir yöntem olmaması NSDictionary.
DawnSong

Açıkçası, bu sadece sözlüklerin birleştirme işlemi, yinelenen girişler değil. @JohanKarlsson
DawnSong

3
@DawnSong Aşağıdaki yöntemle yerinde olsaydım NSDictionary'de bir kategori oluştururdum: + (instancetype)dictionaryByAddingEntriesFromDictionary:(NSDictionary *)dictionary { NSMutableDictionary *combinedDictionary = [NSMutableDictionary dictionaryWithDictionary:self]; [combinedDictionary addEntriesFromDictionary:dictionary]; return combinedDictionary; } Biçimlendirme sorunları için özür dilerim. StackOverflow, yorumlarda kolay çok satırlı kod biçimlendirmesine izin vermez.
BigSauce

Bence asıl soru, bunun ara değişken nesneler OLMADAN nasıl yapılacağıyla ilgili. Böyle bir şeyin (örneğin NSString için var olan) ana yararı, iş parçacığı güvenli olmasıdır.
Motti Shneor

14

İki sözlüğü yeni bir değiştirilebilir sözlüğe eklemek için NSMutableDictionary addEntriesFromDictionary kullanın. Daha sonra değiştirilebilir olandan bir NSDictionary oluşturabilirsiniz, ancak genellikle değiştirilemeyen bir sözlüğe sahip olmak gerekli değildir.


0

NSDictionary diğer NSDictionaries ile dolu mu? Sonunda NSDictionaries ekleyebileceğiniz bir NSMutableArray'e ihtiyacınız olacak gibi görünüyor. Gelen veri akışını kontrol edebileceğinizi ve dizinizde yineleme riskini almayacağınızı varsayarsak, verileri kesinlikle ekleyebilirsiniz.

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

Nasıl uyguladığınızı görmeden, daha ayrıntılı kod örnekleri veremem. Öğe eklemek kolaydır, ancak bunun yalnızca Arrays veya Dictionaries'in değiştirilebilir sürümleriyle yapılabileceğini bilin. Umarım bu biraz yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.