Неустранимая ошибка Элемент NSArray не соответствует типу элемента Swift Array после обновления xcode10.1 - PullRequest
0 голосов
/ 07 апреля 2019

, так как я обновляю xcode 10.1, эта ошибка происходит.

Код:

class mainPageJobObj   {
    var _id : String = ""
    var avatar :String = ""
    var name : String = ""
    var serviceState = ""
}
items : [mainPageJobObj]!
items // i read it from server and its not empty
let oneItem = items[index] // Fatal error: NSArray element failed to match the Swift Array Element type -- This is what compiler is showing.

after debuging debuging more specefic

1 Ответ

0 голосов
/ 07 апреля 2019

В сообщении об ошибке сообщается, что items был соединен с NSArray (который не обеспечивает типизацию его элементов), но когда Swift попытался извлечь элемент, он не нашел экземпляр mainPageJobObj, который это то, что вы сказали, что они содержали массив.

Из снимка экрана отладки видно, что массив items на самом деле содержит экземпляры NSMutableDictionary.

Быстрое решение - использовать соответствующее объявление items:

var items:[String:Any] = slider.mainPageObj.items!
let oneItem = items[index]
let name = oneItem["name"]

Гораздо лучше исправить с самого начала использование типов Swift; Если данные с вашего сервера возвращаются в формате JSON, используйте Codable для создания экземпляров Swift Struct или Class.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...