2014-07-16 56 views
1

我正在嘗試存儲&在NSUserDefaults中獲取數據時,應用程序第一次啓動NSUserDefaults中的「令牌」的值爲零。在應用程序啓動時,我試圖從standardUserDefaults()得到它,但它失敗&給出的錯誤爲:Swift中的EXC_BAD_INSTRUCTION(code = EXC_I386_INVOP,subcode = 0x0)

EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

遵循的是代碼:

var prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults() 
let value : AnyObject! = prefs.objectForKey("token") as AnyObject! 
+0

哪一行產生錯誤? – Antonio

+2

我能夠在沒有任何問題的情況下在Xcode 6 Beta 2中運行您的代碼。您使用哪種Xcode?嘗試清理項目,重新設置模擬器並重新運行。 – RaffAl

+0

On:讓價值:AnyObject! = Prefs.objectForKey(「token」)作爲AnyObject! – OMK

回答

1

我能夠運行代碼沒有在Xcode 6測試版的任何問題 2. 嘗試從developer center更新最新的Xcode 6測試版。

+0

測試Xcode 6 Beta 3.其工作。謝謝。 – OMK

1

這就是如果有一個關鍵「令牌」沒有目標我希望什麼。

AnyObject!意思是「你可以指定值可能是爲零,但我保證它不會發生,所以請在發生時立即崩潰」。

+0

你錯了。 'value'的值可以爲零。這就是AnyObject!的意思。這不是一個斷言。 – RaffAl

+0

@reecon這不是AnyObject!的用例,它意味着:一旦設置爲值,它可能不再是零。技術上可以,但是你不應該測試AnyObject!爲零。 gnasher729是絕對正確的。按照慣例從Apple AnyObject!第一次設置後不應該爲零。 – Binarian

-1

您的代碼沒有問題。我可以運行它。

pref: AnyObject! = { 
    value = None 
} 

Xcode的版本是什麼?

相關問題