2015-11-05 46 views
0

這是我的代碼。如果默認值沒有保存經緯度,那麼給它一個經度。Swift中Optional(「nil」)的含義是什麼?

問題是錯誤:

fatal error: unexpectedly found nil while unwrapping an Optional value

用下面的代碼後self.latself.lng時。每次控制檯打印出來是

the saved gps is Optional("nil")

什麼是對Optional("nil")的意義,並從Optional(nil)區別?

我使用的Xcode 7.1和斯威夫特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)") 
} 
+1

你問一個字符串。所以零包裝爲「零」。 – matt

+1

看起來你正試圖提供默認的默認值。你知道'registerDefaults'嗎? – matt

+0

非常感謝,我更改了代碼,如果defaults.stringForKey(「lat」)!=「nil」,那麼它現在正在工作。 –

回答

0

顯示它的實際價值...

let digit = sender.currentTitle! 

假設你的發件人值是10,則輸出爲10

假設您的發件人值是零然後應用程序汽車。

它示出了可選的值

let digit = sender.currentTitle 

假設你的發送方值是10,則輸出是可選的( 「10」)。

假設您的發件人值爲零然後應用程序不是汽車。

&顯示值這樣的可選( 「無」)