Я пытаюсь разобраться с компилятором в случае дополнительных значений. Задача очень проста, мой func устанавливает значения по умолчанию для пользователей в tableview. Если пользователь запускает приложение в первый раз, он устанавливает значения по умолчанию. Установка значений по умолчанию работает отлично (проверено с журналом печати), но кокетливые причины:Необязательные NSUserDefaults в Swift
fatal error: unexpectedly found nil while unwrapping an Optional value
Я уже работал с дополнительными опциями в течение длительного времени, но, возможно, я до сих пор путает о них, «потому что я вижу что все кажется правильным, и даже компилятор говорит, что все в порядке.
func getFiltersSetts() -> [String] {
let userDefs = NSUserDefaults.standardUserDefaults()
var defsArray = [String]()
if (userDefs.objectForKey("gender") != nil) {
defsArray.append((userDefs.objectForKey("gender")?.stringValue)!)
defsArray.append((userDefs.objectForKey("age")?.stringValue)!)
defsArray.append((userDefs.objectForKey("online")?.stringValue)!)
}
else {
userDefs.setObject("Male", forKey: "gender")
userDefs.setObject("21-30", forKey: "age")
userDefs.setObject("Online", forKey: "online")
}
return defsArray
}
Прежде всего отлаживать, какой объект является нулевым и вызывает ошибку при разворачивании. – Wujo