Mencoba mengisi array dengan string dari tombol dalam kamus dengan cepat.
var componentArray: [String]
let dict = NSDictionary(contentsOfFile: NSBundle.mainBundle().pathForResource("Components", ofType: "plist")!)
componentArray = dict.allKeys
Ini mengembalikan kesalahan: 'AnyObject' tidak identik dengan string
Juga mencoba
componentArray = dict.allKeys as String
tetapi dapatkan: 'String' tidak dapat dikonversi menjadi [String]
Dengan Swift 3,
Dictionary
memilikikeys
properti.keys
memiliki deklarasi berikut:Perhatikan bahwa
LazyMapCollection
yang dengan mudah dapat dipetakan keArray
denganArray
'sinit(_:)
initializer.Dari
NSDictionary
ke[String]
AppDelegate
Cuplikan kelas iOS berikut menunjukkan cara mendapatkan array string ([String]
) menggunakankeys
properti dariNSDictionary
:Dari
[String: Int]
ke[String]
Secara lebih umum, kode Playground berikut menunjukkan cara mendapatkan array string (
[String]
) menggunakankeys
properti dari kamus dengan kunci string dan nilai integer ([String: Int]
):Dari
[Int: String]
ke[String]
Kode Playground berikut menunjukkan cara mendapatkan array string (
[String]
) menggunakankeys
properti dari kamus dengan kunci integer dan nilai string ([Int: String]
):sumber
Dictionary<String, String>.Keys
- apakah Anda memiliki wawasan saat kami ingin menggunakan jenis itu dan bagaimana?Array dari kunci kamus di Swift
sumber
dict.allKeys
bukan String. Ini adalah[String]
, persis seperti pesan kesalahan memberitahu Anda (dengan asumsi, tentu saja, bahwa kunci adalah semua string; ini adalah persis apa yang Anda nyatakan ketika Anda mengatakan itu).Jadi, mulailah dengan mengetik
componentArray
sebagai[AnyObject]
, karena itu adalah bagaimana itu diketikkan dalam Cocoa API, atau kalau tidak, masukkandict.allKeys
ke[String]
, karena itulah yang Anda ketikcomponentArray
.sumber
sumber
NSDictionary adalah Kelas (lulus dengan referensi) Kamus adalah Struktur (lulus dengan nilai ) ====== Array dari NSDictionary ======
NSDictionary memiliki allKeys dan allValues mendapatkan properti dengan tipe [Any] .
====== Array From Dictionary ======
Referensi Apple untuk kunci Kamus dan nilai properti.
sumber
yang memberi [String] https://developer.apple.com/documentation/swift/array/2945003-sorted
sumber
Dari dokumentasi resmi Array Apple :
init(_:)
- Membuat array yang mengandung elemen-elemen urutan.Pernyataan
Parameter
s - Urutan elemen untuk berubah menjadi array.
Diskusi
sumber
Jawaban ini akan untuk kamus cepat dengan kunci String. Seperti yang di bawah ini .
Ini ekstensi yang akan saya gunakan.
Dan saya akan mendapatkan semua kunci nanti menggunakan ini.
sumber
Cepat 5
Ini bekerja untuk saya.
sumber
Anda dapat menggunakan dictionary.map seperti ini:
Penjelasan: Peta iterate melalui myDictionary dan menerima setiap pasangan kunci dan nilai sebagai $ 0. Dari sini Anda bisa mendapatkan $ 0.key atau $ 0.value. Di dalam trailing closure {}, Anda bisa mengubah setiap elemen dan mengembalikan elemen itu. Karena Anda ingin $ 0 dan Anda menginginkannya sebagai string maka Anda mengonversi menggunakan String ($ 0.key). Anda mengumpulkan elemen yang diubah ke array string.
sumber
sumber