Подтвердить что ты не робот

Строковые литералы в ленивых vars в Swift 2/XCode 7 [Невозможно преобразовать значение типа String...]

Всякий раз, когда в объявлении lazy var появляется строковый литерал, я получаю ошибку компиляции в Swift 2/XCode 7: Cannot convert value of type String to expected argument type '(_builtinStringLiteral: RawPointer, byteSize: Word, isASCII: Int1)' ...

(у меня не было проблем в Swift 1.2/XCode 6)

Простейшая строка, создающая эту ошибку, выглядит примерно так:

lazy var foo = "bar"

Но более релевантно (досадно), это также происходит с инициализаторами, которые принимают строковые аргументы:

lazy var viewsLabel = HWLabel(color: COLOR_WHITE, font: ProximaNova("Semibold", 13))
lazy var durationIconView = HWIconView(imageName: "TimeIcon", color: COLOR_WHITE)

Это, очевидно, мои собственные инициализаторы, и я замечаю, что Apple SDK не очень часто имеют строки в качестве аргументов в инициализаторах. Строки в init плохой практике?

Что делает обертка объявления в блоке.

Я могу сделать это сейчас или просто сделать их не lazy.

Мне все еще интересно. Является ли это ошибкой XCode 7?

UPDATE:

Только что заметил, что работа не завершает объявление в закрытии, а скорее указывает тип var, чтобы он не выводился.

Итак, , что работает:

lazy var viewsLabel: HWLabel = HWLabel(color: COLOR_WHITE, font: ProximaNova("Semibold", 13))
lazy var durationIconView: HWIconView = HWIconView(imageName: "TimeIcon", color: COLOR_WHITE)

Почему появление строки в манифестах объявлений lazy var с выводами типа вне меня. По-прежнему есть подозрение, что это может быть ошибка XCode 7.

4b9b3361