println 中的可选(“var”)

Posted

技术标签:

【中文标题】println 中的可选(“var”)【英文标题】:Optional("var") in println 【发布时间】:2014-10-18 13:01:51 【问题描述】:

如果我尝试打印一个 var,我会遇到问题,如果我尝试记录它或将它打印到标签,有时会得到一个“可选(“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 如果! 没有跟在变量名后面,它会出现。你有没有找到解决方案? 【参考方案1】:

oki 只需添加一个“!”

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

【讨论】:

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

以上是关于println 中的可选(“var”)的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的可选闭包属性

可选类中的可选属性 VS 可选字典中的可选值

Java 中的可选 orElse 可选

Swift 中的可选值是啥?

JavaScript中的可选参数[重复]

参数 SwiftUI 中的可选绑定