Если вы хотите сохранить Int
INT NSUserDefaults
вы можете сделать это прямо так:
NSUserDefaults.standardUserDefaults().setInteger(YourIntValue, forKey: "LastIndex")
Позвольте мне исправить некоторые из вашего кода. Прежде всего посмотрите на этот код:
let defaults = NSUserDefaults.standardUserDefaults()
if !(defaults.objectForKey("LastIndex") != nil)
{
defaults.setObject(Int(0), forKey: "LastIndex")
}
Вы проверяете здесь, что если есть значение для LastIndex
или нет, но вместо того, чтобы пытаться что вы можете напрямую создать значение Int с может непосредственно читать Int
из памяти с этим кодом:
let abc = NSUserDefaults.standardUserDefaults().integerForKey("LastIndex")
println(abc)
с помощью этого кода, если нет значения для ключа LastIndex
то он будет установлен в 0
по умолчанию, поэтому он будет печатать всегда 0
, если нет ничего, так что вам не нужно, чтобы проверить, если он nil
или нет.
Теперь посмотрим на этот код:
let lastIndex: Int = Int(defaults.objectForKey("LastIndex"))
Здесь вы читаете значения из этого ключа, где вы пытаетесь литьем как Int
, но если вы делаете это, как я предложил вам можно непосредственно получить Int
значение формировать его так просто сделать его простым, как:
let lastIndex = NSUserDefaults.standardUserDefaults().integerForKey("LastIndex")
Это всегда возвращает Int и если нет ничего установить, то это будет 0
по умолчанию.
И вы можете выполнять свои действия, как вы хотите:
while randomIndex != lastIndex {
randomIndex = Int(arc4random_uniform(UInt32(phrasesArray.count)))
}
Надеется, что это поможет.
На какой строке вы получаете эту ошибку? –