![](/img/trans.png)
[英]Loading Integer For The First Time Error Using NSUserdefaults Swift
[英]Swift NSUserDefaults app crash first time
我的应用程序每次安装时都会崩溃,但这只是第一次。
这是我的代码
var State = save.stringForKey("StateSave")
var City = save.stringForKey("CitySave")
var Vehicle = save.stringForKey("ModelNumberSave")
var ExtensionPeriod = save.stringForKey("ExtensionPeriodChoosed")
var Location = "Location"
if ExtensionPeriod == nil {
var name = ""
var FieldChoosed: Void = save.setObject(name, forKey: "ExtensionPeriodChoosed")
save.synchronize()
}
save.synchronize()
var DetailNames = ["\(State!)","\(City!)","\(Location)","\(Vehicle!)","\(ExtensionPeriod!)"]
它崩溃,因为它说ExtensionPeriod为零。 所以我认为这是因为if语句中的NSUserDefaults。 所以我的第一个想法是将save.synchronize哪个var save = NSUserDefaults.standardUserDefaults()
但是它不起作用:\\
您的应用程序崩溃是因为在此行中:
var DetailNames = ["\(State!)","\(City!)","\(Location)","\(Vehicle!)","\(ExtensionPeriod!)"]
您正在使用强制展开运算符。 在展开它们之前,您需要确保这些值不nil
。
来自Swift编程语言:基础知识 :
尝试使用! 访问不存在的可选值会触发运行时错误。 在使用!之前,请始终确保可选值包含非nil值。 强制释放其价值。
您可以使用nil合并运算符提供默认值:
var State = save.stringForKey("StateSave") ?? "Texas"
var City = save.stringForKey("CitySave") ?? "El Paso"
作为风格注释,您的实例变量应以小写字母开头。 仅类型名称应以大写字母开头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.