【发布时间】:2016-12-02 20:25:57
【问题描述】:
我在 Swift 2 中有一个函数:
public override func drawRect(rect: CGRect)
Xcode 提供将其转换为 Swift 3。我按下红点转换,它转换成:
open override func draw(_ rect: CGRect) {
但是,现在它给了我下一个错误:
Invalid redeclaration of 'draw'
如何正确地将其转换为 Swift 3?
【问题讨论】:
-
这是一个全局函数,还是一个类型的方法?另外,您是否已经检查过编译器所说的内容并查看同一范围内是否有另一个函数也具有类型签名
draw(_:)? -
@DanielHall it 类内部的方法。不,没有另一个 draw(_:) 编译器只显示我在这里发布的函数。
-
@Mighty Codder,您能否检查一下我提供的解决方案是否有效,我认为您正试图覆盖从
UIView继承的类中的方法,不是吗? -
@Mighty Codder,也许你可以把整个班级的代码放在这里以供进一步参考?
-
@lmiguelvargasf 它是从 NSUIView 继承的,我什至将其更改为 UIView。不幸的是,您的解决方案不起作用。 XCode 强制我在 func 前面添加 open 然后说无效的 draw 声明