Поверка для nil и проверка содержимого строки различаются в Swift.
Класс NSString имеет метод длины, который возвращает длину строки.
Грубый эквивалент в Swift - это функция count(). (Он ведет себя по-разному для таких вещей, как буквы с диакритическими знаками, но давайте игнорировать, что на данный момент.
Если вы хотите выражение, которое будет возвращать 0, если строка необязательно равна нулю или, если она содержит пустую строку, используйте код как это:.
var aString: String?
println(count(aString ?? ""))
aString = "woof"
println(count(aString ?? ""))
код count(stringOptional ?? "")
возвращает 0, если опция равна нулю, или, если она содержит пустую строку
??
двойные кавычки называется «ноль сливающихся оператор» он заменяет первая часть выражения со второй если первая часть равна нулю. Это эквивалентно:
string1 == nil ? "" : string1
Вы можете использовать IsEmpty с той же конструкции:
(string1 ?? "").isEmpty
И так ваш, если заявление будет лучше записать в виде
if (string1 ?? "").isEmpty && (string2 ?? "").isEmpty
{
println("Both strings are empty")
}
Обратите внимание, что выше только необходимо, если string1 и string2 объявлены как дополнительные:
var string1: String?
, если они объявлены как необходимые объекты Струнные:
var string1: String
вам не нужен дополнительный синтаксис, показанный выше, и он не будет компилировать.
сначала подходит для моего мнения –
Обязательно оставьте место вокруг условных обозначений: 'string1! = Nil' not' string! = Nil'. – vacawama