var defaults = NSUserDefaults.standardUserDefaults();
var titlesForTip : [NSString]? = defaults.objectForKey("titleForTipSegment") as? [NSString]
if titlesForTip == nil //Check for first run of app
{
titlesForTip = ["18%", "20%", "22%"]; //Default value
}
// it is ok to get first and last elements
println(titlesForTip?.first)
for item in titlesForTip {//**error [NSString]? does not have a member named Generator**
println(item)
}
//**error type [NSString]? does not conform to protocol sequence type**
for (var index, var value) in enumerate(titlesForTip) {
println("Item \(index + 1): \(value)")
}
titlesForTip[1];//**error [NSString]? does not have a member named subscript**
В окне отладки отображаются заголовкиForTip, включающие в себя 3 элемента и отображаемые в названияхForTip [0] ... titlesForTip [2], но я не могу посетить его с помощью [].Как перезапустить NSString в Swift?
он работает в Xcode 6.1.1, я не знаю, как итерации с ним.
Ошибка в моем коде: var titlesForTip: [NSString]? = defaults.objectForKey ("titleForTipSegment") как? [NSString] if (titlesForTip? == nil || titlesForTip! == []) // Проверка первого запуска приложения { titlesForTip = ["18%", "20%", "22%"]// Значение по умолчанию } objectForKey вернет нулевой массив, когда ничего не будет, поэтому titlesForTip == nil никогда не произойдет.
titlesForTip является необязательным. Вам нужно развернуть его. –