在println中使用Optional("var")

5

我遇到了一个问题,当我尝试打印变量时,有时会得到一个"Optional("var")"的结果。但是如果我将它记录到日志或者将其打印到标签中,就不会出现这种情况。

可以看一下这里:

ViewController.swift

import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        NSUserDefaults.standardUserDefaults().setObject("notWorking", forKey: "testvar")
        NSUserDefaults.standardUserDefaults().synchronize()
        println(NSUserDefaults.standardUserDefaults().stringForKey("testvar"))
        var test = "working"
        println(test)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

有人能解释一下什么时候会出现“Optional”这个选项,以及它的用途是什么吗?我该如何将其移除?

你好,我也很想知道为什么如果变量名后面没有跟着!,为什么会出现Optional。你有找到解决方法吗? - AnchovyLegend
1个回答

12

我只需要添加一个“!”

println(NSUserDefaults.standardUserDefaults().stringForKey("testvar")!)


如果stringForKey()返回nil,即“如果默认值不存在或不是字符串或数字值”,则会崩溃。 - RyanM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接