Я пытаюсь повысить ценность [[String: String]]() следующим образом:

let realm = try! Realm()
let nrcObj = realm.objects(ObjectNRC.self)
for nrc in nrcObj {
    nrcTownshipCode["value"] = nrc.regionCode
    nrcTownshipCode["display"] = nrc.regionCode
}

Но когда мне это понравилось, я обнаружил следующее сообщение об ошибке.

Невозможно присвоить значение типа "[[String: String]]" индекс типа "String"

Подскажите, пожалуйста, как это сделать. Спасибо.

-3
PPShein 27 Фев 2018 в 11:04

1 ответ

Лучший ответ

Что вы пытаетесь сделать, так это рассматривать [[String: String]] как словарь, который не ! Фактически, [[String: String]] - это массив словарей ([String: String]). Итак, что вам нужно сделать вместо этого - например -:

 for nrc in nrcObj {
     nrcTownshipCode[0]["value"] = nrc.regionCode
     nrcTownshipCode[0]["display"] = nrc.regionCode
 }

Означает, что вы должны перебирать nrcObj и добавлять значения для первого словаря в свой массив. Обратите внимание, что это может быть не ваш желаемый результат, но он описывает вашу проблему и способы ее решения. Например, вы можете добавить дополнительную переменную для хранения счетчика итераций и использовать ее в качестве индекса для вашего массива:

var i = 0
for nrc in nrcObj {
     nrcTownshipCode[i]["value"] = nrc.regionCode
     nrcTownshipCode[i]["display"] = nrc.regionCode

     i += 1
 }
1
Ahmad F 27 Фев 2018 в 11:33