xcode8 教程编码问题,方法 'setplayer' 出错
xcode8 coding issue with tutorial getting error for method 'setplayer'
所以我正在尝试学习教程,我完成了大部分教程,但我仍然不断收到错误消息,并且不知道如何修复它们。
我收到一条错误消息
method'setplayer' with Objective-C selector 'setPlayer:' conflicts
with setter for 'player' with the same 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
}
}
}
所以我正在尝试学习教程,我完成了大部分教程,但我仍然不断收到错误消息,并且不知道如何修复它们。
我收到一条错误消息
method'setplayer' with Objective-C selector 'setPlayer:' conflicts with setter for 'player' with the same 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
}
}
}