2016-12-20 34 views
0

我在我的應用程序中使用NSUserDefaults來存儲一些標誌值。每次發生條件時,我的函數都會增加值。有時它可以工作,但大多數時候它崩潰並且得到一條EXC_BAD_ACCESS消息。NSUserDefault給EXC_BAD_ACCESS試圖獲取值

var sample1: Int = countWord.integer(forKey: "countWord1") 
var sample2: Int = countWord.integer(forKey: "countWord2") 
var sample3: Int = countWord.integer(forKey: "countWord3") 

這些是我得到錯誤的行。

編輯

這是我如何初始化和設置反覆迭代函數後countword

let countWord = UserDefaults.standard 
countWord.set(sample1+1, forKey: "countWord1") 

應用程序崩潰

+0

什麼是'countWord'? – EmilioPelaez

+0

你能告訴你如何初始化countWord嗎?你有沒有嘗試過:'countWord.integer(forKey:「countWord1」)爲Int! ?? 0',它不會崩潰,我認爲它崩潰,因爲countWord1/countWord2/countWord3中沒有任何東西 – Aximem

+0

我已經嘗試過使用此方法,但仍然崩潰 –

回答

0

我不認爲這些是您的應用程序崩潰的線條。對於exc-bad-access你通常必須追溯回來。您可以使用儀器來追蹤它。

控制器和方法中定義的變量由ARC處理得很好。這通常發生在當您有兩個控制器時,例如,ViewController A正嘗試訪問ViewController B的強變量ViewController B被釋放。

+0

實際上,我在兩個不同的控制器中使用此標誌,我會嘗試追蹤它 –