Тип аргумента 'AnyObject' не соответствует ожидаемому типу NSCopying

Я пытаюсь использовать NSDictionary в Swift и я сталкиваюсь с вышеупомянутой проблемой. У меня есть словарь следующего формата:

let xyz: NSMutableDictionary = ["1":[1,2,3,4,"1","n","1","2"],"2":[1,2,3,4,"+","o","6","2"]]

Я хочу перебрать ключи в словаре и извлечь 6-й элемент массива. Я попробовал следующее; но не встретился ни с какой удачей

for keys in dictKeyMutableDict {
    let xCentVal = xyz[keys as! [NSCopying]][6]
}

Я продолжаю получать ошибку индексации, и если я удаляю as! [NSCopying]Я получаю вышеуказанную ошибку. Кто-нибудь знает, как бороться с таким случаем?

1 ответ

Удалить NSMutableDictionary и сделать его изменчивым, сделав его переменным. Теперь вы можете удалить as! [NSCopying]

var xyz = ["1":[1,2,3,4,"1","n","1","2"],"2":[1,2,3,4,"+","o","6","2"]]

for keys in dictKeyMutableDict {
    let xCentVal = xyz[keys]![6]
}

Или лучше опционально разверните его:

for keys in dictKeyMutableDict {
    if let v = xyz[keys] {
        let xCentVal = v[6]
    }
}
Другие вопросы по тегам