У меня есть простой словарь, который определяется как:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
Теперь я хочу добавить элемент в этот словарь: 3 : "efg"
Как я могу добавить 3 : "efg"
в этот существующий словарь?
swift
nsdictionary
Дхармеш Хени
источник
источник
Ответы:
Вы используете
NSDictionary
. Если вам по какой-то причине явно не нужен этот тип, я рекомендую использовать словарь Swift.Вы можете передать словарь Swift любой функции, ожидающей
NSDictionary
без какой-либо дополнительной работы, потому чтоDictionary<>
иNSDictionary
без проблем соединитесь друг с другом. Преимущество родного способа Swift состоит в том, что в словаре используются универсальные типы, поэтому, если вы определите егоInt
как ключ иString
как значение, вы не сможете по ошибке использовать ключи и значения разных типов. (Компилятор проверяет типы от вашего имени.)Исходя из того, что я вижу в вашем коде, ваш словарь использует
Int
в качестве ключа иString
в качестве значения. Чтобы создать экземпляр и добавить элемент позже, вы можете использовать этот код:Если вам позже потребуется присвоить его переменной
NSDictionary
типа, просто выполните явное приведение:И, как упоминалось ранее, если вы хотите передать его ожидающей функции
NSDictionary
, передайте ее как есть без приведения или преобразования.источник
Dictionary
объектом, а затем преобразовывая егоNSDictionary
в конец, если вам нужно. Чудесно. Спасибо."Antonio"
к ключу1
такdic[1]
вернусь"abc, Antonio"
.Вы можете добавить, используя следующий способ и изменить
Dictionary
наNSMutableDictionary
источник
Cannot assign to the result of this expression
dict["testval"] = "test"
.. Ошибкаfatal error: unexpectedly found nil while unwrapping an Optional value
Я знаю, что это может произойти очень поздно, но это может оказаться полезным для кого-то. Поэтому для добавления пар ключ-значение в словари в swift вы можете использовать метод updateValue (value:, forKey:) следующим образом:
источник
SWIFT 3 - XCODE 8.1
Итак, ваш словарь содержит:
словарь [1: Привет, 2: Привет, 3: Алоха]
источник
dictionary[1] = "Hola"
?Если ваш словарь
Int
дляString
вас, вы можете сделать просто:Если вы имеете в виду добавление элементов к значению словаря, возможное решение:
источник
Свифт 3+
Пример назначения новых значений в словарь. Вы должны объявить его как NSMutableDictionary:
источник
В Swift, если вы используете NSDictionary , вы можете использовать
setValue
:источник
Дано два словаря, как показано ниже:
Вот как вы можете добавить все элементы из dic2 в dic1 :
Приветствия А.
источник
.forEach
вместо, так.map
как нам не нужен какой-либо возвращаемый сопоставленный массивDict.updateValue
обновляет значение для существующего ключа из словаря или добавляет новую новую пару ключ-значение, если ключ не существует.Пример-
result-
источник
Для парней, использующих
[String:Any]
вместоDictionary
ниже расширениеисточник
Начиная с Swift 5 работает следующая коллекция кода.
источник
Нет функции для добавления данных в словарь. Вы просто присваиваете значение новому ключу в существующем словаре. это автоматически добавит ценность словарю.
Выход будет как
["Имя": "Алоха", "Пользователь": "Алоха 2", "Вопросы": "" Ты мой "?"]]
источник
источник
источник
Чтобы добавить новые элементы, просто установите:
источник
До сих пор я нашел лучший способ добавить данные в словарь, используя одну из функций Swift более высокого порядка, то есть «уменьшить». Ниже приведен фрагмент кода:
@ Dharmesh В твоем случае это будет,
Пожалуйста, дайте мне знать, если вы обнаружите какие-либо проблемы в использовании вышеуказанного синтаксиса.
источник
Swift 5 счастливое кодирование
источник
Я добавил расширение словаря
вы можете использовать
cloneWith
как этоисточник
если вы хотите изменить или обновить NSDictionary, то прежде всего введите его как NSMutableDictionary
тогда просто используйте
источник