,所以我试图遵循一个tutuorial,我完成了其中的大部分,但是我仍然在这里收到错误消息,并且不知道如何修复它们。
我收到一条读取
的错误消息method'setplayer'与Objective-C Selector'SetPlayer:'冲突 使用相同的Objective-C Selector
使用"播放器"的设置器
import UIKit
class TTTImageView: UIImageView {
var player:String?
var activated:Bool! = false
func setPlayer (_ _player:String){ "<-- error message for this line of code"
self.player = _player
if activated == false{
if _player == "x"{
self.image = UIImage(named: "x")
}else{
self.image = UIImage(named: "o")
}
activated = true
}
}
}
用源代码回答将是惊人的,谢谢。
解决方案:
只需将该方法从setPlayer
重命名为placePlayer
之类的其他方法,您就可以了。
原因:
由于Swift和Objective-C是可互操作的,因此SWIFT代码的Objective-C翻译也必须有效。在Objective-C中,属性自动生成的设置器,名称为set
,然后是该属性的名称。您的功能与此自动生成函数发生冲突,因此您会收到错误。
代码:
class TTTImageView: UIImageView {
var player: String?
var activated: Bool = false
func placePlayer(_ _player: String) {
self.player = _player
if activated == false {
if _player == "x" {
self.image = UIImage(named: "x")
} else {
self.image = UIImage(named: "o")
}
activated = true
}
}
}