struct CustomerUser {
static var sharedInstance = Instance()
}
struct Instance {
var numberOfCredits: Double?
}
let credits = CustomerUser.sharedInstance.numberOfCredits ?? 0.0
if credits > 0 {
print("credits greater than zero")
}
numberOfCreditsオプションのダブル(ダブルは?)それはゼロまたはダブル値を含むことが意味されます。
だからこそ、numberOfCreditsがnilだった場合、コンパイラは何をするべきかわかりません。
if CustomUser.sharedInstance.numberOfCredits > 0 // wtf
変換するためにダブルですか?〜の場合は、を使用しますか?演算子は変換するだけでなく、numberOfCreditsにDouble値が含まれていますが、numberOfCreditsには0.0が返されます。
let credits = CustomerUser.sharedInstance.numberOfCredits ?? 0.0
共有インスタンスと機能を表示できますか?オプションの問題があるかもしれません。 –
これを試してください: 'CustomUser.sharedInstance.numberOfCredits! > 0.0' –
[こちら](http://stackoverflow.com/a/39427736/6541007)をご確認ください。 – OOPer