в swift 3 пропал мост между [Double] и [NSObject]?

Итак, в Swift2.x приведенный ниже код работает без проблем:

определять:

public class BarChartData
    public convenience init(xVals: [String?]?)
    {
        self.init(xVals: xVals, dataSets: [IChartDataSet]())
    }

    public convenience init(xVals: [NSObject]?)
    {
        self.init(xVals: xVals, dataSets: [IChartDataSet]())
    }

в этом:

let xs = Array(1..<10).map { return Double($0) }
let data = BarChartData(xVals: xs)

Однако в Swift3, Xcode8 GM выдает мне ошибку:

Не удается вызвать инициализатор для типа «BarChartData» со списком аргументов типа «(xVals: [Double])»

Если я перейду на

let data = BarChartData(xVals: xs.map { i in return i as NSObject })

Тогда это сработает.

Похоже, что в Swift3 моста между [Double] и [NSObject] больше нет. Есть ли какая-либо документация об этом изменении или это ошибка?


person Wingzero    schedule 08.09.2016    source источник
comment
См. SE-0072: полностью исключить неявные промежуточные преобразования из Swift. Вы также можете написать преобразование как xs as [NSObject]   -  person Hamish    schedule 08.09.2016
comment
Также задокументировано в примечаниях к выпуску бета-версии 6: Преобразования мостов больше не являются неявными. Преобразование из типа значения Swift в соответствующий объект может быть принудительно выполнено с помощью as.   -  person Martin R    schedule 08.09.2016
comment
Как пишет @Hamish выше, но указать w.r.t. ваш комментарий Кажется, в Swift3 мост между [Double] и [NSObject] исчез: удалено только неявное соединение.   -  person dfrib    schedule 08.09.2016
comment
@Hamish большое спасибо, пожалуйста, ответьте, и я приму это   -  person Wingzero    schedule 08.09.2016
comment
Спасибо, парни! Решено   -  person Wingzero    schedule 08.09.2016