2016-06-08 2 views
0

Click here to see the screenshot of the code.(lldb) ошибка при запуске на устройстве, а не имитатор

Я делаю приложение, список и я экономлю массив для «список», что я хочу, когда я нагрузка снова открыть приложение. странно, что я работаю на симуляторе, но не на устройстве. (См скриншот понять)

 feedCells = (NSUserDefaults.standardUserDefaults().objectForKey("feedCellsData") as? [String])! 

вот линию, что она держит сбой на.

Я попытался изменить его, так что это необязательное значение. Но я не могу найти ничего похожего на помощь.

ответ

1

Прежде всего проверьте, что версия iOS для вашего устройства - iOS 8 или выше. Если это меньше, чем затем, используйте функцию synchronize() после установки значения NSUserDefaults.

Вы принудительно разворачиваете (используя!) Дополнительное значение, которое вы получаете от Down Casting (используя?).

Вы также можете устранить этот крах, добавив проверку значения, которое вы извлекаете из NSUserDefaults для не нулевого, а затем назначьте его в свой feedCells var.

let cells = NSUserDefaults.standardUserDefaults().objectForKey("feedCellsData") as? [String] 
if cells != nil { 
    feedCells = cells 
} 

или

Сделать feedCells вар необязательными и удалить "!" от конца строки, которая получает ошибку.

var feedCell : [String]? 
feedCells = NSUserDefaults.standardUserDefaults().objectForKey("feedCellsData") as? [String] 
+0

Это очень помогло. Там должно быть больше таких людей, как вы! – blubben

+1

Accept & Up Прогоните ответ, нажав кнопку «Стрелка вверх» и «Стрелка вверх», если это вам поможет. –

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