2014-11-28 4 views
0

다른 방정식을 계산하는 버튼을 만들려고합니다.Swift에서 나이를 올바르게 계산하려면 어떻게해야합니까?

내가 가지고있는 것은 내가 7

으로는 곱됩니다 텍스트 필드에 넣어 숫자는하지만 완전히 변경 찾고 있어요 : 나는 전부 곱셈 기능을 제거하고 싶습니다. 사용자는 사용자가 3 다음 버튼 누름 단순히 9

기본적 준비된 답변을 넣어 도시 들어가면 2 다음 버튼 누름 단순히 8 를 도시 들어가면

사용자 1 들어가면

다음 버튼 누름 단순히 7 를 도시 10 가지 옵션 (사용자가 1 - 10을 입력하라는 메시지가 표시됨)을 입력하면 레이블 상자에 해당 답변이 나옵니다. 내가 올바르게 읽고 있어요 경우

class ViewController: UIViewController { 

    @IBOutlet weak var CatAge: UITextField! 
    @IBOutlet weak var message: UILabel! 

    @IBAction func ButtonPressed(sender: AnyObject) { 
     var age = CatAge.text.toInt() 
     age = age! * 7 
     message.text = "Thats equal to \(age!) in cat years" 
    } 
} 
+1

당신은'switch' 문을 찾고 있습니까? 아니면 사전 검색일까요? – Thilo

답변

2

모든 당신은 그들이 입력 무엇에 6 추가되어하고 싶은 경우에, 당신의 대답은 간단하다.

@IBAction func ButtonPressed(sender: AnyObject) { 
    var age: Int = CatAge.text.toInt()! 
    age += 6 
    message.text = "Thats equal to \(age) in cat years" 
} 

그렇지 않은 경우 '그들이 실제로에서 입력 한 내용에 의존 뭔가를 찾고있다, 당신은 그런 것 같가는 switch statement을 찾고 될 수 있습니다

switch age { 
    case 1: 
     age = 7 
    case 2: 
     age = 10 
    case 3: 
     age = 15 
    case 4: 
     age = 22 
    case 5: 
     age = 27 
    case 6: 
     age = 33 
    case 7: 
     age = 40 
    case 8: 
     age = 46 
    case 9: 
     age = 51 
    case 10: 
     age = 60 
    default: 
     age = 0 
} 
1

당신은 단순히 사전에이 작업을 수행 할 수 있습니다.

@IBAction func ButtonPressed(sender: AnyObject) { 
    let convert = [1:7, 2:8, 3:9, 4:10, 5:11, 6:12, 7:13, 8:14, 9:15, 10:16] 
    if let age = convert[CatAge.text.toInt() ?? 0] { 
     message.text = "Thats equal to \(age) in cat years" 
    } else { 
     message.text = "Invalid value" 
    } 
} 

는 여기에 텍스트 필드가 Int로 변환 할 수없는 경우, 그렇지 않으면 0 될 것입니다, 값이있는 경우 안전하게 CatAge.text.toInt() 랩을 해제하는 운영자 ??을 병합 전무 을 사용했다. 텍스트 필드에 사전에없는 Int이 있으면 convert의 조회는 nil을 반환합니다. 이 경우 선택적 바인딩이 실패하고 메시지가 "Invalid value"가됩니다.

관련 문제