NSDictionary
kullanmak istediğim bir uygulama geliştiriyorum. Verileri mükemmel bir örnekle saklamak için bana NSDictionary
'u nasıl kullanacağımı açıklayan örnek bir kod gönderebilir miyim?Bir NSDictionary içine nasıl kaydedebiliriz? NSDictionary ve NSMutableDictionary arasındaki fark nedir?
cevap
NSDictionary ve NSMutableDictionary dokümanlar muhtemelen en iyi bahis vardır. Hatta yineleme ... Bir NSDictionary
NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", nil];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", nil];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects
forKeys:keys];
oluşturmak ... gibi çeşitli şeyler yapmak için bazı büyük örnekler ...
var üzerinde o
for (id key in dictionary) {
NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}
... bunu düzeltin
NSMutableDictionary *mutableDict = [dictionary mutableCopy];
Not: tarihi sürüm öncesi 2010: [[Sözlük mutableCopy] sallanmasını]
... ve
[mutableDict setObject:@"value3" forKey:@"key3"];
... sonra bir dosyaya alanına kaydetmek değiştirebilir
[mutableDict writeToFile:@"path/to/file" atomically:YES];
... ve aga geri okumak
NSMutableDictionary *anotherDict = [NSMutableDictionary dictionaryWithContentsOfFile:@"path/to/file"];
yılında ... kilit
if ([anotherDict objectForKey:@"key999"] == nil) NSLog(@"that key is not there");
varsa ... at ... Bir değer
NSString *x = [anotherDict objectForKey:@"key1"];
okumak korkutucu fütüristik sözdizimi kullanmak
itibarenaslında sadece dicti yazabilirsiniz ziyade [dict objectForKey: @ "anahtar"] [ "anahtar" @]
NSDictionary *dict = [NSDictionary dictionaryWithObject: @"String" forKey: @"Test"];
NSMutableDictionary *anotherDict = [NSMutableDictionary dictionary];
[anotherDict setObject: dict forKey: "sub-dictionary-key"];
[anotherDict setObject: @"Another String" forKey: @"another test"];
NSLog(@"Dictionary: %@, Mutable Dictionary: %@", dict, anotherDict);
// now we can save these to a file
NSString *savePath = [@"~/Documents/Saved.data" stringByExpandingTildeInPath];
[anotherDict writeToFile: savePath atomically: YES];
//and restore them
NSMutableDictionary *restored = [NSDictionary dictionaryWithContentsOfFile: savePath];
İyi Açıklama. Yardımcı oldu .. –
@Ben Gottlieb Part One: Güzel açıklamalar için teşekkürler. Aslında iki UItextField veriyi MutableDictionary dosyasındaki bir dosyada kaydetmek istiyorum. Burada 'NSString * savePath = [@ "~/Documents/Saved.data" stringByExpandingTildeInPath] yazdınız; şimdi, sorum şu, burada 'Saved.data' dosyası nedir? Nasıl yapabilirim? – Tulon
@Ben Gottlieb Part Two: Ve benim durumumda aşağıdaki dosyaya bir metin dosyası (.rtf) koydum 'Dosyaları Destekleme> MediaFiles> Belgeler> userData.rtf'.Şimdi bu Mutabledictionary türünü metin dosyasına kaydedebilir miyim? ? Ve bu durumda mükemmel dizin ne olacak? Bu [userData writeToFile: @ "MediaFiles/Documents/userData.rtf atomik olarak: EVET] ile çalışıyordum; & bununla birlikte [userData writeToFile: @" Belgeler/userData.rtf "atomically: YES]; işe yaramadı İyi günler. – Tulon
temel fark: NSMutableDictionary NSDictionary olamaz, yerinde değiştirilebilir. Bu, Kakao'daki diğer tüm NSMutable * sınıfları için geçerlidir. NSMutableDictionary, NSDictionary'ın bir alt sınıfı olan'dur, bu yüzden NSDictionary ile yapabileceğiniz her şeyi her ikisiyle de yapabilirsiniz. Bununla birlikte, NSMutableDictionary ayrıca, setObject:forKey:
yöntemi gibi, yerinde değişiklik yapmak için tamamlayıcı yöntemler de ekler.
Böyle ikisi arasında dönüştürebilirsiniz:
NSMutableDictionary *mutable = [[dict mutableCopy] autorelease];
NSDictionary *dict = [[mutable copy] autorelease];
Tahminen bir dosyaya yazarak veri depolamak istiyor.karşılık gelen bir yöntem var,
BOOL success = [dict writeToFile:@"/file/path" atomically:YES];
bir dosyadan bir sözlük okumak için: NSDictionary (ayrıca NSMutableDictionary ile çalışır) bunu yapmanın bir yöntemi vardır
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:@"/file/path"];
siz dosyayı okumak istiyorsanız bir NSMutableDictionary bunu kullanın: Sen NSDictionary belgelerine bir göz alarak başlayabileceğini
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/file/path"];
Cevabınız için teşekkürler ... –
- 1. NSDictionary
- 2. NSDictionary
- 3. NSDictionary kullanımı
- 4. Bir NSDictionary
- 5. NSDictionary dosyasını
- 6. Sıralama NSDictionary
- 7. Sipariş NSDictionary
- 8. Dur NSDictionary
- 9. NSDictionary nasıl sıralayabilirim?
- 10. C# içinde bir NSDictionary eşdeğeri nedir?
- 11. Swift içinde NSDictionary json içeren NSDictionary NSString nasıl dönüştürülür?
- 12. iPhone - NSDictionary dizisini içeren NSDictionary öğesini 2 anahtarıyla ayırma
- 13. başlatmasını Özel Sınıf NSDictionary
- 14. NSDictionary özel nesne vs
- 15. Örnek [NSDictionary getObjects: andKeys:]
- 16. NSDray bir NSDictionary içinde nasıl depolanır?
- 17. NSData'yı NSDictionary parametresiyle birlikte web hizmetine geçirme
- 18. UIImage'ı bir NSDictionary içinde nasıl depolarım?
- 19. Bir NSDictionary öğesini kendi değerlerinden biri olarak nasıl seçebilirim?
- 20. JSONKIt seri hale getirme NSDIctionary
- 21. Cocoa's NSDictionary: Anahtarlar neden kopyalanıyor?
- 22. Python'da {} ve [] arasındaki fark nedir?
- 23. NSDictionary için bir blok numaralandırmayı durdurma
- 24. % 5B% ve% 5B0 arasındaki fark nedir?
- 25. Swift - NSDictionary üzerinden döngü nasıl yapılır
- 26. Android'de Sözlük (iphone NSDictionary gibi) nasıl kullanılır?
- 27. NSDictionary içeriğine sahip bir NSManagedObject oluşturma
- 28. Bu "NSDictionary" anahtarını "id" anahtarına göre nasıl sıralayabilirim?
- 29. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 30. $ arasındaki fark nedir? ve PowerShell
... – stefanB
kibar RTFMs nasılsa açık olanlardan daha yakıcı görünüyor. –
@stefanB Pek çok yeni programcı için resmi belgeler genellikle çok karmaşık ve kafa karıştırıcıdır, bu yüzden SO üzerinde _x_ ile ilgili basit bir görünüm yardımcı olur. –