2016-12-20 8 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") 

Это линии, в которых я получаю сообщение об ошибке.

EDIT

Это, как я инициализировать и установить 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

Фактически я использую этот флаг в двух разных контроллерах. Я попытаюсь проследить его –