#ios #swift #swift3
#iOS #swift #swift3
Вопрос:
У меня этот код отлично работает в Swift 2.2
let arrayNib = Bundle.main.loadNibNamed("VehicleDetailsTableViewCell", owner: nil, options: nil) as! NSArray
В то время как в swift 3.0 код выдает ошибку
Не удается преобразовать значение [Any]? чтобы ввести NSArray в принуждении
Комментарии:
1. Дружественное примечание: это Swift. Вместо NSArray следует использовать массив Swift.
Ответ №1:
попробуйте это
let arrayNib = Bundle.main.loadNibNamed("VehicleDetailsTableViewCell", owner: nil, options: nil)! as [Any]
print (arrayNib)
Ответ №2:
Я могу использовать его как
let arrayNib = Bundle.main.loadNibNamed("VehicleDetailsTableViewCell", owner: nil, options: nil)
Это дает мне массив [Любой?].
Ответ №3:
Ошибка довольно явная.
Вы пытаетесь преобразовать Optional<T>
, чтобы сказать U
.
В то время T
как можно преобразовать в U
, Optional<T>
это не так.
Если вы хотите, вы можете выполнить приведение Optional<T>
Optional<U>
. Как и в вашем случае [Any]?
NSArray?
.
Но я настоятельно рекомендую использовать Swift
array и добавить несколько реальных типов.