Mam prosty słownik, który jest zdefiniowany jako:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
Teraz chcę dodać element do tego słownika: 3 : "efg"
Jak mogę dołączyć 3 : "efg"
do tego istniejącego słownika?
swift
nsdictionary
Dharmesh Kheni
źródło
źródło
Odpowiedzi:
Używasz
NSDictionary
. O ile z jakiegoś powodu nie potrzebujesz tego typu jawnie, zalecamy używanie słownika Swift.Możesz przekazać słownik Swift do dowolnej funkcji oczekującej
NSDictionary
bez dodatkowej pracy, ponieważDictionary<>
iNSDictionary
płynnie się ze sobą łączą. Zaletą natywnego sposobu szybkiego jest to, że słownik używa typów ogólnych, więc jeśli zdefiniujesz goInt
jako klucz iString
jako wartość, nie możesz omyłkowo użyć kluczy i wartości różnych typów. (Kompilator sprawdza typy w Twoim imieniu).W oparciu o to, co widzę w twoim kodzie, twój słownik używa
Int
jako klucza iString
wartości. Aby utworzyć instancję i dodać element w późniejszym czasie, możesz użyć tego kodu:Jeśli później musisz przypisać ją do zmiennej
NSDictionary
typu, po prostu wykonaj jawną rzutowanie:I, jak wspomniano wcześniej, jeśli chcesz przekazać ją do funkcji oczekującej
NSDictionary
, przekaż ją taką, jaka jest, bez rzutowania ani konwersji.źródło
Dictionary
obiektem, a następnie przekształcania goNSDictionary
na końcu, jeśli zajdzie taka potrzeba. Wspaniale. Dzięki."Antonio"
do klucza1
takdic[1]
wróci"abc, Antonio"
.możesz dodać w następujący sposób i zmienić
Dictionary
naNSMutableDictionary
źródło
Cannot assign to the result of this expression
dict["testval"] = "test"
.. Błądfatal error: unexpectedly found nil while unwrapping an Optional value
Wiem, że to może nadejść bardzo późno, ale może się komuś przydać. W celu szybkiego dołączenia par wartości klucza do słowników można użyć metody updateValue (wartość:, forKey:) w następujący sposób:
źródło
SWIFT 3 - XCODE 8.1
Twój słownik zawiera:
słownik [1: Hola, 2: Hello, 3: Aloha]
źródło
dictionary[1] = "Hola"
?Jeśli słownik jest
Int
, abyString
można zrobić po prostu:Jeśli chodzi o dodanie elementów do wartości słownika, możliwe rozwiązanie:
źródło
Swift 3+
Przykład przypisywania nowych wartości do słownika. Musisz zadeklarować go jako NSMutableDictionary:
źródło
W Swift, jeśli używasz NSDictionary , możesz użyć
setValue
:źródło
Biorąc pod uwagę dwa słowniki, jak poniżej:
Oto jak możesz dodać wszystkie elementy z dic2 do dic1 :
Pozdrawiam A.
źródło
.forEach
zamiast,.map
ponieważ nie potrzebujemy żadnej odwzorowanej tablicyDict.updateValue
aktualizuje wartość istniejącego klucza ze słownika lub dodaje nową nową parę klucz-wartość, jeśli klucz nie istnieje.Przykład-
Wynik-
źródło
Dla stypendystów używających
[String:Any]
zamiastDictionary
niżej jest to rozszerzenieźródło
Począwszy od wersji Swift 5, działa następująca kolekcja kodów.
źródło
Nie ma funkcji dodawania danych do słownika. Po prostu przypisujesz wartość do nowego klucza w istniejącym słowniku. automatycznie doda wartość do słownika.
Wynik będzie podobny
[„Imię”: „Aloha”, „użytkownik”: „Aloha 2”, „pytania”: „„ Czy jesteś mój ”?]]
źródło
źródło
źródło
Aby dodać nowe elementy, ustaw:
źródło
Do tej pory najlepszym sposobem na dołączenie danych do słownika jest użycie jednej z funkcji Swift wyższego rzędu, tj. „Zmniejszanie”. Wykonaj poniższy fragment kodu:
@ Dharmesh W twoim przypadku będzie to
Daj mi znać, jeśli znajdziesz jakiekolwiek problemy z używaniem powyższej składni.
źródło
Swift 5 happy kodowania
źródło
Dodałem rozszerzenie słownika
możesz użyć w
cloneWith
ten sposóbźródło
jeśli chcesz zmodyfikować lub zaktualizować NSDictionary, to przede wszystkim wpisz go jako NSMutableDictionary
następnie po prostu użyj
źródło