输入' Int'不符合协议' BooleanType'?

时间:2016-04-20 04:52:14

标签: swift

我知道还有另一个主题有相同的问题,但它并没有说明实际导致问题的原因

我是swift的新人,所以我对此感到困惑。 我写了一个非常简单的程序,该程序应该以默认数量的关注者(0)开头,并将其分配给' defaultfollowers'一旦它变为1,它就会成为"追随者",但我得到了错误" Type' Int'不符合协议' BooleanType'"。造成这种情况的原因和为什么

    var followerdeafault = 0
var followers = 0
if (followerdeafault++){
 var followers = followerdeafault

}

2 个答案:

答案 0 :(得分:1)

在Swift中你无法隐式替换Int而不是Bool。这样做是为了防止混淆并使代码更具可读性。

所以不是这个

let x = 10
if x { /* do something */ }

你必须写下这个:

let x = 10
if x != 0 { /* do something */ }

另外,您无法通过Optional而不是Bool检查它是否nil,就像在Objective-C中一样。改为使用显式比较:

if myObject != nil { /* do something */ }

答案 1 :(得分:0)

正如评论所说,您正试图在Int比较声明中使用Bool。您正在寻找的可能是这样的:

if followerdeafuaut++ == 1 { ... }

另请注意:++运算符已弃用,正在转向使用+=