为什么Swift 3中没有这个有条件的工作?

Kex*_*Ari 0 ios swift swift3

在我之前使用的Swift 3之前嘿:

if CustomUser.sharedInstance.numberOfCredits > 0 {
}
Run Code Online (Sandbox Code Playgroud)

哪里numberOfCredits是Double?.现在我收到错误:二进制运算符'>'不能应用于'Double?'类型的操作数 和'国际'.为什么是这样?所以我将0更改为0.0并且获取二进制运算符'>'不能应用于'Double?'类型的操作数 和'双'.为什么这行不适用于Swift 3?

hnh*_*hnh 5

这不起作用,因为你numberOfCredits是Optional(Double?).应该是:0121删除可选的比较运算符.

像这样做:

if let v = CustomUser.sharedInstance.numberOfCredits, v > 0 {
}
Run Code Online (Sandbox Code Playgroud)

PS:除此之外:numberOfCredits听起来应该是一个Int,而不是一个Double?也许它不应该是一个Optional- 如果没有信用,它应该是0?很难说不知道你在做什么.