2016-12-20 29 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

实际上,我在两个不同的控制器中使用此标志,我会尝试追踪它 –