if for Swift

时间:2015-05-12 15:02:25

标签: ios swift

这是我的代码:

func onDoubleTap(sender:AnyObject) {
var StringBool = Swapper.getSwapperValue
if StringBool == "false"{...}

Swapper是另一个类,子类NSObjectgetSwapperValue是函数,它返回变量的false值。但是使用此代码,我收到错误:Binary operator '==' cannot be applied to operands of type 'Swapper -> () -> NSString' and 'String'

3 个答案:

答案 0 :(得分:1)

查看错误消息

'Swapper -> () -> NSString' and 'String'

==右侧的类型是String,左侧的类型是Swapper -> () -> NSString,它是一种函数类型 - 不是任何类型的字符串。 Swift中的函数是第一类类型,这意味着你可以像普通变量一样对待它们,我的猜测是你正在做的事情 - Swapper.getSwapperValue是一个函数而不是属性。试着写

var stringBool = Swapper.getSwapperValue()

或者如果Swapper是一个类而且getSwapperValue不是类函数

var stringBool = Swapper().getSwapperValue()

答案 1 :(得分:0)

所以,我在这里解决了我的问题:

我在NSObject类中创建了一个名为 swapper1 的变量。

这是我的代码:var swapa = Swapper().swapper1 并转换相同。

答案 2 :(得分:-1)

var sObj:Swapper = Swapper.new();
        var StringBool = sObj.swapperValue;
        if StringBool == false{ // this should be bool value not string
            println("false");
        }else{

            println("true");

        }