2017-04-23 2 views
0

그래서 튜토리얼을 따르려고하는데 대부분 끝났지 만 여기에도 오류 메시지가 계속 표시되며이를 수정하는 방법을 모릅니다. 같은 목표 - C 선택튜토리얼에서 xcode8 코딩 문제가 'setplayer'메소드에 대해 오류가 발생했습니다.

와 플레이어 ''에 대한 세터와 충돌 '

나는

method'setplayer'목표 - C 셀렉터 'setPlayer를라는 오류 메시지가

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

솔루션 :

그냥 placePlayer 같은 뭔가 다른 setPlayer에서 방법을 이름을 변경하고 당신은 괜찮을거야.

이유 : 스위프트와 오브젝티브 C는 상호 운용하기 때문에

것은, 당신의 스위프트 코드의 목표 - 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