2017-04-23 38 views
0

所以我想跟隨tutuorial和我完成了大部分,但我仍然不斷收到錯誤消息在這裏,不知道如何解決它們。xcode8編碼問題與教程獲取錯誤的方法'setplayer'

我得到讀取

method'setplayer」用Objective-C中選擇 'setPlayer的錯誤信息:' 衝突與 爲二傳手 '球員' 具有相同的Objective-C選擇

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 
     } 

    } 
} 

與源代碼的答案將是驚人的謝謝。

+0

該錯誤消息似乎恰恰說明你的問題。一個屬性「player」的setter將被稱爲「setPlayer」。 – gnasher729

回答

0

解決方案:

剛剛從setPlayer重命名方法到別的像placePlayer,你會沒事的。

原因:

由於雨燕和Objective-C是可互操作的,你的銀行代碼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 
     } 

    } 
} 
+1

非常感謝你:) – john

+0

如果我的解決方案爲你工作,將其標記爲「已接受」,所以如果其他人將來遇到同樣的問題,他們將能夠快速找到解決方案。 – nathan