Как добавить значения в словарь, содержащий 3 элемента в Swift 2.3?

Я пытаюсь добавить значение в словарь, который я объявил так.

var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)]!

Я не уверен, что его словарь, хотя. Я учусь быстро, и я нашел интересный код в сети. В любом случае, я не совсем понимаю, как мне добавить к этому значения. Я старался

setHomIconDict.append((iconImg:img!, Operator: "Strin", oprCode: "Hello", oprMerchCode: "Huja"))

Но я получаю эту ошибку: фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения. вот изображение

Может кто-нибудь предложить подходящий способ.

3 ответа

Возможно, вам лучше создать структуру для хранения ваших значений. Тогда ваш массив будет массивом этой структуры.

struct homIcon {
    var iconImg: UIImage
    var Operator: String
    var oprCode: String
    var oprMerchCode:String
}

var setHomIconArray:[homIcon] = []

let newHomIcon = homIcon(iconImg: img!, Operator: "Strin", oprCode: "Hello", oprMerchCode: "Huja")

setHomIconArray.append(newHomIcon)

setHomIconDict не является Dictionary это массив кортежей, и вы получаете этот сбой, потому что вы не инициализировали setHomIconDict объект, вы только что объявили его тип. Так что инициализировал его своей декларацией.

var setHomIconDict:[(iconImg: UIImage, Operator: String, oprCode: String, oprMerchCode:String)] = []

Примечание. Вместо создания массива кортежей лучшим решением будет создание одной пользовательской модели. Class с собственностью, которую вы хотите set/access, а затем создать массив этого обычая Class объекты и использовать его.

Как говорит Нирав, используемый вами синтаксис создает массив кортежей. Если вы хотите словарь, избавьтесь от скобок.

Вы хотите определить пары ключ / значение, используя этот синтаксис:

var aDict = [key:value, key:value, key:value] 

Затем вы можете добавить новые пары ключ / значение, используя:

aDict[newKey] = newValue

Ваша цель - создать и использовать словарь, или ваша цель - использовать и понимать структуру, которую вы нашли в сети?

Другие вопросы по тегам