Swift-Fehler : Wert optional Typ 'Double?' nicht ausgepackt
Ich bin Neuling in Swift, was diese Fehlermeldung :
let lvt=self?.lastVibrationTime
let delta=self!.deltaTime
let sens=self!.shakeSensitivity
let time:Double = CACurrentMediaTime()
//error is on `lvt` and says : Error:(37, 27) value of optional type 'Double?' not unwrapped; did you mean to use '!' or '?'?
if time - lvt > delta && data.userAcceleration.x < sens {
println("firmly shaken!")
self?.vibrateMe()
}
- In deiner if-Anweisung, können Sie versuchen, ändern Sie die
lvt
zulvt!
- Raten "lastVibrationTime" deklariert ist "optional". Das bedeutet, dass es könnte null sein, so müssen Sie wickeln Sie es vor dem Gebrauch.
- Es hat funktioniert, aber was bedeutet es?
- var lastVibrationTime : Double = 0 // ist es optional?
- Nein, aber da Sie "selbst" als optional, das kann nicht sein, so versuchen, zu entfernen "? und !" nach sich selbst und Sie werden just fine.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim schreiben
let lvt=self?.lastVibrationTime
bei der Verwendungself?
Ihre lvt variable ist optional, du musst es Auspacken, bevor Sie es verwenden, haben Sie viele Lösungen, um diesen Fehler zu beheben:self?.lastVibrationTime
undself!.lastVibrationTime
self?
Sie sagen, dass Sie vergeben die die lvt variable nur, wennself
ist nicht null, das ist, warum lvt ist optional in Ihrem Beispiel, wenn Sieself!
Sie sagen, dass Sie sicher selbst-ist nicht null verwenden, sollten Sie!
nur, wenn Sie sicher sind, dass die variable niemals null.Alle Ihre Optionen müssen ausgepackt werden.
So
lvt
werden solltelvt!
Wort der Vorsicht Auspacken ein optional, das nicht über einen Wert, wird eine Ausnahme geworfen. So könnte es eine gute Idee, um sicherzustellen, dass Ihr lvt ist nicht null.
Mit dieser Zeile:
Du bist der Anerkennung
self
ist optional. Also, wenn esnil
dannlvt
wäre null; wennself
ist nichtnil
, dann erhalten Sie die Letzte Schwingung Zeit. Wegen dieser Mehrdeutigkeit,lvt
ist nicht der TypDouble
aber eine optionale,Double?
.Wenn Sie bestimmte
self
wird nicht null, können Sie erzwingen, dass es Auspacken:Wenn
self
ist nil, wenn, die app stürzt hier.Sicher zu sein, können Sie optional die Bindung an überprüfen Sie den Wert:
Bedeutet, dass müssen Sie möglicherweise einen
else
Fall hier, wenn Sie haben einige code, um im Fall des nil.