Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检查NSUserDefaults密钥是否存在会使应用程序崩溃_Ios_Swift - Fatal编程技术网

Ios 检查NSUserDefaults密钥是否存在会使应用程序崩溃

Ios 检查NSUserDefaults密钥是否存在会使应用程序崩溃,ios,swift,Ios,Swift,以下代码位于myAppDelegatedidFinishLaunchingWithOptions launchOptions:方法中。当我尝试运行应用程序时,它崩溃了 var accessToken = "" if let key = NSUserDefaults.standardUserDefaults().objectForKey("accesstoken"){ accessToken = key as! String } 我从Xcode获得的唯一崩溃日志

以下代码位于myAppDelegate
didFinishLaunchingWithOptions launchOptions:
方法中。当我尝试运行应用程序时,它崩溃了

var accessToken = ""
if let key = NSUserDefaults.standardUserDefaults().objectForKey("accesstoken"){
         accessToken = key as! String
        }
我从Xcode获得的唯一崩溃日志是:

我也尝试过:

if  NSUserDefaults.standardUserDefaults().objectForKey("accesstoken") != nil {
}
有人能帮我解决这个问题吗?

试试可选铸造

var accessToken:String? = nil
if let key = NSUserDefaults.standardUserDefaults().objectForKey("accesstoken") as? String {
    accessToken = key
}

转到代码中崩溃的那一行,告诉我们你真的不应该将你的敏感信息存储在用户默认值中。你的应用程序不会因为上面的代码而崩溃。但是在另一条线上撞车。但是xCode显示错误和错误。它不指示代码中的任何行,控制台也不显示除(lldb)之外的任何内容。将
objectForKey
更改为
stringForKey
当然,现在可以使用
UserDefaults.standard.string(forKey:“accesstoken”)