2015-06-20 11 views
0

製作默認指數= 0AnyObject讓我很緊張(無法找到類型的初始化器...)

let defaults = NSUserDefaults.standardUserDefaults() 

    if !(defaults.objectForKey("LastIndex") != nil) 
    { 
     defaults.setObject(Int(0), forKey: "LastIndex") 
    } 

然後嘗試這個指標與隨機數

var randomIndex: Int = 0 
    let defaults = NSUserDefaults.standardUserDefaults() 
    let lastIndex: Int = Int(defaults.objectForKey("LastIndex")) 

    while randomIndex != lastIndex 
    { 
     randomIndex = Int(arc4random_uniform(UInt32(phrasesArray.count))) 
    } 

,但得到比較錯誤enter image description here

+0

你在哪一行得到這個錯誤? –

回答

1

我找到了解決辦法 - 如此簡單,我甚至LOL'ed。

let lastIndex: Int = defaults.integerForKey("LastIndex") 
0

如果你想存儲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") 

這將始終返回詮釋,如果沒有什麼設置,那麼這將是0默認。

而且,只要你想,你可以執行你的行動:

while randomIndex != lastIndex { 
     randomIndex = Int(arc4random_uniform(UInt32(phrasesArray.count))) 
} 

希望它會幫助你。

相關問題