2014-12-29 3 views
0

신속하게 UIButton을 누르면 기능 블록을 반복하는 방법을 알 수없는 것 같습니다. 다음은 내가 가지고있는 것입니다.Swift- 버튼을 누를 때마다 버튼을 새로 고침 할 수 있습니까?

class CoinFlip: UIViewController { 
@IBOutlet var resultLabel: UILabel! 
    var randomNumber = (Int(arc4random_uniform(2))) 
    @IBAction func tossButton(sender: UIButton) { 
     if randomNumber == 0 { 
     resultLabel.text = "Heads!" 
     } 
     else if randomNumber == 1 { 
     resultLabel.text = "Tails!" 
     } 
    } 
} 

버튼을 응용 프로그램에서 누르면 임의의 숫자가 선택됩니다. 다시 치면 동일한 번호가 표시됩니다. 내가 단추를 누르면 새로 고침 할 때마다 그렇게 할 수 있습니까?

답변

1
var randomNumber = 0 

    @IBAction func tossButton(sender: UIButton) { 
     randomNumber = Int(arc4random_uniform(2)) 
     if randomNumber == 0 { 
      resultLabel.text = "Heads!" 
     } else { 
      resultLabel.text = "Tails!" 
     } 
    } 

당신은 또한 다음과 같은 읽기 전용 계산 된 속성을 만들 수 있습니다

- 읽기 전용 계산 된 속성

게터있는 계산 된 재산 있지만 세터는 읽기로 알려져되지 않습니다 유일한 계산 된 속성. 읽기 전용 계산 속성 인 항상 은 값을 반환하며 도트 구문을 통해 액세스 할 수 있지만 은 다른 값으로 설정할 수 없습니다.

참고

당신은 계산 된 속성을 포함 선언해야 읽기 전용 자신의 값이 고정되어 있지 않기 때문에, 속성-로 var 키워드와 변수 속성을 계산. let 키워드는 상수 속성에만 사용되며 이 인스턴스 초기화의 일부로 설정되면 해당 값을 변경할 수 없음을 나타냅니다. 그것이 도움이되기를 바랍니다,

var headsTails:Bool { 
     return Int(arc4random_uniform(2)) == 1 ? true : false 
    } 

    if headsTails { 
     println("Heads") 
    } else { 
     println("Tails") 
    } 

    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
    println(headsTails) 
0

빠른 코드 :

당신은 GET 키워드와 괄호를 제거 하여 읽기 전용 계산 된 속성의 선언을 단순화 할 수

class CoinFlip: UIViewController { 

    var randomNumber: Int? 

    @IBOutlet var resultLabel: UILabel! 

    @IBAction func tossButton(sender: UIButton) { 
     guard (randomNumber != nil) else { 
      randomNumber = Int(arc4random_uniform(2)) // picks a number 
      resultLabel.text = ""      // removes the old result 
      return 
     } 

     // Displays the number 
     resultLabel.text = randomNumber == 0 ? "Heads!" : "Tails!" 
     randomNumber = nil 
    } 
} 
관련 문제