我一直在做一些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之间的随机数。我该如何解决错误?
答案 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)