Saya memiliki Kamus sederhana yang didefinisikan seperti:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
Sekarang saya ingin menambahkan elemen ke dalam kamus ini: 3 : "efg"
Bagaimana saya bisa menambahkan 3 : "efg"
kamus ini?
swift
nsdictionary
Dharmesh Kheni
sumber
sumber
Jawaban:
Anda menggunakan
NSDictionary
. Kecuali Anda secara eksplisit membutuhkan jenis itu untuk beberapa alasan, saya sarankan menggunakan kamus Swift.Anda dapat meneruskan kamus Swift ke fungsi apa pun yang diharapkan
NSDictionary
tanpa kerja ekstra, karenaDictionary<>
dan salingNSDictionary
terhubung dengan mulus. Keuntungan dari cara Swift asli adalah bahwa kamus menggunakan tipe generik, jadi jika Anda mendefinisikannya denganInt
sebagai kunci danString
sebagai nilainya, Anda tidak dapat secara keliru menggunakan kunci dan nilai dari tipe yang berbeda. (Kompiler memeriksa jenis atas nama Anda.)Berdasarkan apa yang saya lihat dalam kode Anda, kamus Anda menggunakan
Int
sebagai kunci danString
sebagai nilai. Untuk membuat instance dan menambahkan item di lain waktu Anda dapat menggunakan kode ini:Jika nanti Anda perlu menetapkannya ke variabel
NSDictionary
tipe, lakukan saja pemeran eksplisit:Dan, seperti yang disebutkan sebelumnya, jika Anda ingin meneruskannya ke fungsi yang diharapkan
NSDictionary
, berikan apa adanya tanpa perubahan atau konversi.sumber
Dictionary
objek dan kemudian mengubahnya menjadiNSDictionary
pada akhirnya jika Anda perlu. Hebat. Terima kasih."Antonio"
ke tombol1
sehinggadic[1]
akan kembali"abc, Antonio"
.Anda dapat menambahkan menggunakan cara berikut dan ubah
Dictionary
keNSMutableDictionary
sumber
Cannot assign to the result of this expression
dict["testval"] = "test"
.. Errorfatal error: unexpectedly found nil while unwrapping an Optional value
Saya tahu ini mungkin datang sangat terlambat, tetapi mungkin terbukti bermanfaat bagi seseorang. Jadi untuk menambahkan pasangan nilai kunci ke kamus dengan cepat, Anda dapat menggunakan metode updateValue (value:, forKey:) sebagai berikut:
sumber
SWIFT 3 - XCODE 8.1
Jadi, kamus Anda mengandung:
kamus [1: Hola, 2: Halo, 3: Aloha]
sumber
dictionary[1] = "Hola"
?Jika kamus Anda adalah
Int
untukString
dapat Anda lakukan hanya:Jika Anda bermaksud menambahkan elemen ke nilai kamus solusi yang mungkin:
sumber
Swift 3+
Contoh untuk menetapkan nilai baru ke Kamus. Anda harus mendeklarasikannya sebagai NSMutableDictionary:
sumber
Di Swift, jika Anda menggunakan NSDictionary , Anda dapat menggunakan
setValue
:sumber
Diberikan dua kamus sebagai berikut:
Inilah cara Anda dapat menambahkan semua item dari dic2 ke dic1 :
Ceria A.
sumber
.forEach
daripada.map
karena kita tidak perlu mengembalikan array yang dipetakanDict.updateValue
memperbarui nilai untuk kunci yang ada dari kamus atau menambahkan pasangan nilai kunci baru jika kunci tidak ada.Contoh-
Hasil-
sumber
Untuk orang-orang menggunakan
[String:Any]
bukan diDictionary
bawah ini adalah ekstensisumber
Pada Swift 5, koleksi kode berikut berfungsi.
sumber
Tidak ada fungsi untuk menambahkan data dalam kamus. Anda cukup menetapkan nilai terhadap kunci baru dalam kamus yang ada. itu akan secara otomatis menambah nilai ke kamus.
Outputnya akan seperti
["Nama": "Aloha", "pengguna": "Aloha 2", "pertanyaan": "" Apakah Anda milikku "?"]
sumber
sumber
sumber
Untuk menambahkan elemen baru, cukup atur:
sumber
Sampai sekarang cara terbaik yang saya temukan untuk menambahkan data ke kamus dengan menggunakan salah satu fungsi tingkat tinggi Swift yaitu "mengurangi". Ikuti cuplikan kode di bawah ini:
@ Dharmesh Dalam kasus Anda, itu akan menjadi,
Harap beri tahu saya jika Anda menemukan masalah dalam menggunakan sintaks di atas.
sumber
Swift 5 happy coding
sumber
Saya menambahkan ekstensi Kamus
Anda bisa menggunakan
cloneWith
seperti inisumber
jika Anda ingin memodifikasi atau memperbarui NSDictionary maka pertama-tama typecast sebagai NSMutableDictionary
maka cukup gunakan
sumber