Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 快速错误“;无法调用';制造噪音';参数类型为';((UInt32))和#x27&引用;_Swift - Fatal编程技术网

Swift 快速错误“;无法调用';制造噪音';参数类型为';((UInt32))和#x27&引用;

Swift 快速错误“;无法调用';制造噪音';参数类型为';((UInt32))和#x27&引用;,swift,Swift,我一直在做一些快速编码,得到了“不能用参数类型“((UInt32))”调用“makeNoise”。以下是完整的代码: func makePetMakeNoise(){ var randomNumber = arc4random_uniform(9) self.pet.makeNoise(randomNumber) 我正在使用arc4random\u uniform(9)生成一个介于1和9之间的随机数。如何修复错误?您的方法调用返回一个Int,但它不接受一个In

我一直在做一些快速编码,得到了“不能用参数类型“((UInt32))”调用“makeNoise”。以下是完整的代码:

 func makePetMakeNoise(){
        var randomNumber = arc4random_uniform(9) 
       self.pet.makeNoise(randomNumber)

我正在使用
arc4random\u uniform(9)
生成一个介于1和9之间的随机数。如何修复错误?

您的方法调用返回一个Int,但它不接受一个Int。虽然,你从来没有真正从它回来。根据您在这里的情况,您的电话应该是:

self.pet.makeNoise()
方法声明应为:

func makeNoise() 
{
    //Your if statement that prints stuff.
}
arc4random\u 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") 
    }
}
电话:


show makeNoise definitionOk这里是:func makeNoise()->Int{if Bool(canMakeNoise)==true{println((name)(noise)}否则如果Bool(canMakeNoise)==false{println((name)保持沉默”)}您的函数不接受参数,因此尝试传递参数将导致错误。因此makeNoise方法不接受任何参数。当然你不能调用itThanks-Ian,有没有办法把这些东西放到init方法中?代码:init(name:String,noise:String,canMakeNoise:Bool){self.name=name-self.noise=noise-self.canMakeNoise=canMakeNoise}
let x = Int(arc4random_uniform(5)) // This is now an Int not a UInt32
makeNoise(x)