У меня есть пара строк рабочего кода:
let email = User.sharedInstance.emailAddress ?? ""
accountEmailAddress.text = email
User.sharedInstance
является необязательным экземпляром класса User
. Свойство emailAddress
является необязательным String?
. accountEmailAddress
- это UILabel.
Если я попытаюсь превратить это в одну строку кода:
accountEmailAddress.text = User.sharedInstance.emailAddress ?? ""
Я получаю ошибку компилятора Swift "Неоднозначное использование"?? ".
Я не могу понять, что двусмысленно для использования здесь оператора коллизии nil. Я ищу, чтобы узнать, почему компилятор жалуется и, из любопытства, если есть способ сделать это чистым однострочным.
(Xcode 6 beta 6.)
Изменить: Минимальное воспроизведение на игровой площадке:
// Playground - noun: a place where people can play
var foo: String?
var test: String?
// "Ambiguous use of '??'"
foo = test ?? "ValueIfNil"