Swift错误"无法调用' makeNoise'参数类型'((UInt32))'"

时间:2015-06-17 18:34:25

标签: swift

我一直在做一些Swift编码而且我得到了#34;无法调用' makeNoise'参数类型'((UInt32))'"。这是完整的代码:

host=$1
if [[ $host =~ ^((?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.)+[A-Za-z]{2,6}$ ]] ; then
    echo "it is a domain!"
fi

我正在使用 func makePetMakeNoise(){ var randomNumber = arc4random_uniform(9) self.pet.makeNoise(randomNumber) 制作1到9之间的随机数。我该如何解决错误?

2 个答案:

答案 0 :(得分:0)

您的方法调用返回一个Int,它不接受一个。虽然,你实际上从未真正从它返回。根据您的具体情况,您的电话应该是:

self.pet.makeNoise()

,方法声明应为:

func makeNoise() 
{
    //Your if statement that prints stuff.
}

答案 1 :(得分:0)

arc4random_uniform(UInt32)UInt32作为参数并返回UInt32,这与您的函数不同。根据您提供的功能,它不需要参数,因此它不起作用。使函数采用Int(并相应调整)或UInt32作为参数,然后使用该参数。我不确定你要对Bool(canMakeNoise)做什么,但我认为你试图检查一个给定值的随机数?

功能:

func makeNoise(x: Int) { 
    if x == 0 { // Or some value the pet can make
        println("(name) (noise)") 
    } else { 
        println("(name) remains silent") 
    }
}

呼叫:

let x = Int(arc4random_uniform(5)) // This is now an Int not a UInt32
makeNoise(x)