2011-11-14 14 views

cevap

26

NSDictionary fiili uygulama, sizden API kullanıcı gizlenir, yani bir sınıf kümesi (The Cocoa Fundamentals Guide yılında "Sınıf Kümesi" bölümüne bakınız). Aslında, Vakıf çerçeve verileri vb Ayrıca miktarına göre çalışma zamanında uygun uygulanmasını seçecektir, NSDictionary sadece NSString (tabii ki, anahtar nesnenin -hash sabit olmalıdır), bir anahtar olarak herhangi id alabilir .

Böylece en yakın analog muhtemelen Map<Object,Object> olduğunu.

+0

siz de elma sitesinde uygulama ayrıntılarını görüntüleyebilir, opensource. CFDictionary.c altında edin ama CFDictionary.h de bazı ilginç belgelere sahiptir: http://www.opensource.apple.com/source/CF/CF-1153.18/ – rwyland

13

Pratik kullanım için: HashMap<String, Object> basit, paralel olmayan bir sözlük için gitmek için yol olacaktır. Eğer iş parçacığı güvenli (atomik) 'dir şey gerekiyorsa Ancak, iplik güvenlidir HashTable<String, Object> kullanmak zorunda ederdim ama - özellikle - geçerli bir değer veya anahtar olarak boş kabul etmez.

+0

eskimiş Hashtable'a değil midir? – styler1972

+0

NSDictionary'ın güvenli olduğu garanti edilmez. –

+2

Yani, eşleşmesinin kabul edilen yanıtla eşleştirilmesiyle ilgili fark nedir? – Jonny

1

Kuşkusuz ki bir Android kullanıcısıyım ama ContentValues benim için NSDictionary'a en yakın şey gibi görünüyor. Vakfı yana

+0

Oldukça yakın ama herhangi bir nesneyi değer olarak saklayamazsınız (temel olarak karmaşık nesneleri değil, sayıları veya dizeleri depolayabilirsiniz) – Sylverb

İlgili konular