iOS 어플개발 맛보기

김세포·2022년 6월 2일

Study Memo

목록 보기
1/6

스파르타 코딩클럽 iOS 앱개발 기초반 3주차 강의 숙제 중,

숙제는 창의력을 보신다곤 했지만 일단 난 코드를 먼저 써보고 싶었기 때문에 그냥 주신 예시대로 간단하게만 만들어 보았다.

[ 메뉴 수량을 체크하고 '주문하기' 버튼을 누르면 몇 잔인지와 총 금액이 나오는 앱 ]

coffeeInput

  • UI View Controller 연결
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if var controller = segue.destination as? coffeeOutputViewController {
            controller.americano = Int(americanoStepper.value)
            controller.latte = Int(latteStepper.value)
            controller.iceTea = Int(iceTeaStepper.value)
        }
    }

✏️ if var ??? as ???
segue의 destination은 살펴보면 UIViewController로 되어있음. segue.destination이 coffeeOutputViewController라면? 이라는 뜻으로 이해.

  • Text Field와 Stepper 연결
@IBAction func americanoTextEditingChanged(_ sender: Any) {
        var text = americanoTextField.text ?? ""
        americanoStepper.value = Double(text) ?? 0
    }
@IBAction func americanoValueChanged(_ sender: Any) {
        var value = americanoStepper.value
        americanoTextField.text = String(Int(value))
    }
  • Button 연결

  • Stepper와 Output 화면의 Result Label과 연결
var americano: Int = 0
var latte: Int = 0
var iceTea: Int = 0
    
    
override func viewDidLoad() {
    super.viewDidLoad()
    payButton.layer.cornerRadius = 20
        
    coffeeResultLabel.text = "총 \(calculateCoffee())잔,\n결제하실 금액은\n\(numberFormatter(number: calculatePrice()))원 입니다."
    }
    
func calculateCoffee() -> Int {
        return americano + latte + iceTea
    }
    
func calculatePrice() -> Int {
        var americanoTotal = 2000 * americano
        var latteTotal = 3000 * latte
        var iceTeaTotal = 1000 * iceTea
    
        return americanoTotal + latteTotal + iceTeaTotal
    }

여기까지 만들고 나니 결제금액에 콤마(,)가 없는 상태로 표시 되는게 마음에 들지 않아서 찾아보다가 내게 필요한 코드를 함수로 만들어 놓은 걸 찾았다.

func numberFormatter(number: Int) -> String {
    let numberFormatter = NumberFormatter()
    numberFormatter.numberStyle = .decimal
    
    return numberFormatter.string(from: NSNumber(value: number))!
}

// 출처 : http://yoonbumtae.com/?p=3394

여기까지 찾고는 어떻게 적용해야 할지 몰라서 한참 헤매다가 어찌저찌 적용하긴 했다. 너무 간단하게 변경한 부분이라 사실 이게 맞는지는 모른다.

func numberFormatter(number: Int) -> String {
        let numberFormatter = NumberFormatter()
        numberFormatter.numberStyle = .decimal
        
        return numberFormatter.string(from: NSNumber(value: calculatePrice()))!
    }
profile
이제서야 겨우 만들어진 개발세포

0개의 댓글