【问题标题】:What's the meaning of Optional("nil") in Swift?Swift 中的 Optional("nil") 是什么意思?
【发布时间】:2015-11-05 04:21:27
【问题描述】:

这是我的代码。如果默认值没有保存 lat、lng,那么就给它一个 lat lng。

问题是错误:

致命错误:在展开可选值时意外发现 nil

在下面的代码之后使用self.latself.lng 时。每次控制台打印出来都是

保存的 gps 是 Optional("nil")

Optional("nil")是什么意思,和Optional(nil)有什么区别?

我正在使用 Xcode 7.1 和 Swift 2。

var lat : String = ""
var lng : String = ""

let defaults = NSUserDefaults.standardUserDefaults()
if  defaults.stringForKey("lat") != nil  {
    self.lat = defaults.stringForKey("lat")!
    self.lng = defaults.stringForKey("lng")!
    print ("the saved gps is \(defaults.stringForKey("lat"))")
} else {
    self.lat = "34.7009333"
    self.lng = "135.4942047"
    print ("the init gps is  \(self.lat) , \(self.lng)")
}

【问题讨论】:

  • 你要求一个字符串。所以 nil 被包装为“nil”。
  • 您似乎正在尝试提供默认默认值。你知道registerDefaults吗?
  • 非常感谢,我将代码更改为 if defaults.stringForKey("lat") != "nil" ,然后它现在可以工作了。

标签: ios swift optional


【解决方案1】:

显示实际值...

let digit = sender.currentTitle!

假设您的发送者值为 10,则输出为 10。

假设您的 sender 值为 nil,则 app carsh.

显示可选值

   let digit = sender.currentTitle

假设您的发件人值为 10,则输出是可选的(“10”)。

假设您的 sender 值为 nil,则 app 不是 carsh。

& 像这样显示值 optional("nil")

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 2016-07-14
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多