繁体   English   中英

Swift NSUserDefaults应用首次崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM