swift无效的重新声明

vdgimpew  于 2023-05-16  发布在  Swift
关注(0)|答案(5)|浏览(225)
func dropShape() {
        if let shape = fallingShape {
            while detectIllegalPlacement() == false {
                shape.lowerShapeByOneRow()
            }
            shape.raiseShapeByOneRow()
            delegate?.gameShapeDidDrop(self)
        }
    }

嗨,我正在对'dropShape()'进行无效的重新声明,那么我做错了什么。有人能帮帮我吗

f0brbegy

f0brbegy1#

该错误消息意味着您创建了两个同名函数。

不能对函数使用相同的名称和签名。是的函数重载存在,这意味着你可以使用相同的名称与不同的参数。您可以使用相同的名称创建任意多个函数。经验法则是每个重载函数必须有不同的参数。
例如:

func dropShape() {        
}

func dropShape(points: CGPoint) {        
}
esbemjvw

esbemjvw2#

我也遇到了同样的问题,我已经通过删除编译源代码中的一个额外文件来解决它。
1.转到项目根目录。
1.进入构建阶段。
1.点击【编译源代码】,检查是否有添加了两次的文件,删除其中一个。
这应该能解决你的问题。

igsr9ssn

igsr9ssn3#

我刚刚收到了这个确切的错误消息。对我来说,这是一个“类”和“结构”的冲突。
对于 * 相同 * 作用域中的任何两个类型声明,您将得到一个错误,例如。如果你使用 any of声明下面两种类型中的任何一种,你将得到一个错误

class employee{...}
struct employee{...}
func employee(){...}
protocol employee{...}

它不仅适用于类、结构或函数,它适用于所有东西,因为func s、struct s、enum s、protocol s在Swift中都是**First class citizens**

zbsbpyhn

zbsbpyhn4#

另一件要记住的事情是,你也不能创建一个名为“body”的变量,这是一件令人遗憾的事情,但是你只需要改变变量的名称,你就可以开始了

roejwanj

roejwanj5#

当你没有导入UIKit并且类名应该是唯一的时,就会发生这个错误,所以请确保添加import UIKit并且函数或类具有唯一的名称。

相关问题