2015-11-07 1 views
0

Я работаю над приложением iOS и сохраняю данные с помощью NSKeyedArchiver, а затем загружаю его с помощью NSKeyedUnarchiver. В структуре под названием «WorkingData» у меня есть статическая переменная с именем firstLaunch, для которой установлено значение true. Когда приложение запускается впервые, предполагается запустить код, как это в didFinishLaunchingWithOptions из AppDelegatestatic boolean в структуре, установленном на неправильное значение при запуске Swift 2.1 iOS

if !WorkingData.firstLaunch 
{ 
    // load settings 
} 

однако firstLaunch устанавливается в ложь в таблице символов в отладчике и, таким образом прогонов кода и сбои пытаются развернуть необязательный. Почему это делается, когда в коде установлено значение true. Заранее спасибо!

+0

Это как и ожидалось, эта строка кода еще не запущена, поэтому переменная указывает на ничего и defauls на false. Он должен работать под управлением кода. Если вы все еще не уверены, подпишите переменную на консоль. – Kametrixom

+0

Если ваша логика требует проверки доступных данных, тогда ... проверьте наличие доступных данных! Это намного чище, яснее и надежнее. – Eiko

ответ

0

Как только вы получите доступ к этому типу сохраненного типа, он изменится на true. В вашем примере, когда вы «переходите» к оператору if, значение будет переворачиваться, и блок с // load settings будет пропущен. Вы также можете заставить его изменить, введя po WorkingData.firstLaunch в консоль.

 Смежные вопросы

  • Нет связанных вопросов^_^