2014-06-09 2 views
1

표현식의 유형 '()'을 $ 'T5'로 변환 할 수 없습니다. 카드에서의 PlayingCard 상속과 drawRandomCard가 PlayingCard를 반환한다는 것을 알고 있습니다. 어떻게 변환합니까? 자식에해당 클래스에서 상속받은 Swift - Cast 객체

var deck = PlayingCardDeck() 
var card = PlayingCard() 

class ViewController: UIViewController { 



override func viewDidLoad() { 
    super.viewDidLoad() 

} 

@IBAction func cardTouchBtn(sender : UIButton) { 

    if !sender.currentTitle{sender.setTitle("", forState: UIControlState.Normal)} 
    if sender.currentTitle.isEmpty{ 
     card = PlayingCard(deck.drawRandomCard()) 
     sender.setBackgroundImage(UIImage(named : "cardFront"), forState: UIControlState.Normal) 
     sender.setTitle(card.contents, forState: UIControlState.Normal) 
    }else{ 
     sender.setBackgroundImage(UIImage(named : "cardBack"), forState: UIControlState.Normal) 
     sender.setTitle("", forState: UIControlState.Normal) 
    } 
} 

} 

전체 코드 : https://github.com/victoryudi/CS193p-Swift/tree/master/FlipCard

답변

5

PlayingCard(...)는 캐스팅하지 않습니다. 그것은 생성자 호출입니다.

캐스팅하려면 deck.drawRandomCard() as PlayingCard을 사용하십시오.

+0

나는 그것을 놓쳤다 고 생각할 수 없다. 고맙습니다! – vyudi

관련 문제