#ios #swift #segue
#iOS #swift #segue
Вопрос:
Мой код :
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let playerViewController = segue.destination as! PlayerViewController
playerViewController.ID = channelsDataArray[selectedVideoIndex]["ID"]
as? [String: AnyObject]
}
в строке:
playerViewController.ID = channelsDataArray[selectedVideoIndex]["ID"]
as? [String: AnyObject]
Ошибка :
найден этот кандидат (swift.MutableIndexable)
нашел этого кандидата (swift.array)
нашел этого кандидата (swift.indexable)
Комментарии:
1. каков тип данных идентификатора в PlayerViewController
2. Тип данных идентификатора — строка
3. Вероятно,
channelsDataArray
это что-то безтипное , например, базовый массив, и еслиID
это строка, приведение всегда будет неудачным4. Это тип channelDataArray канала
var channelsDataArray: Array<Dictionary<NSObject, AnyObject>> = []
5. В Swift 3 замените
AnyObject
наAny
, если вам не нужно явноAnyObject
. Самый неопределенный словарь в Swift 3 — это[AnyHashable:Any]
но если все ключи являютсяString
use[String:Any]
и если значения более конкретны, чемAny
, используйте также более конкретный тип. Это значительно помогает компилятору