-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
환율 네트워크처리1 질문있습니다.
23.03.14 21:43 작성 23.03.14 21:54 수정 조회수 162
0
안녕하세요 강의 41:46분에
pickerView 의 delegate중에서 didSelecRow에 관해서 궁금한게있는데 해당 delegate속성이 picker로인해 선택된 row를 반환해준다고 알고있습니다.
궁금한게[ didSeleectRow가있는 delegate메서드를 사용하려면 저는
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
selectedRow = row
}
여기 함수안에서
var selectedRow = 0 {
didSet {
selectedCurrencyName.text = rates?[selectedRow].0
selectedCurrency.text = calculateCurrency()
}
}
위에 해당하는 코드를 작성해야 함수가 작동된다고 생각했는데 강사님 강의보니 그게아니더라구요 왜 그런건가요?
가만생각해보니 didSelecRow에서 현재 선택된 row정보만 얻기위한 용도로 pickerView didSelectRow 델리게이트 메서드를 이용했고 row정보를 얻었으니 화면에 뿌려주는 역활은 굳이 안해도되기떄문에 위의코드처럼 따로 didSet속성을 이용해서 화면을 나타낸걸로 이해했는데 제가 이해한게 맞을까요?
답변을 작성해보세요.
0
iOS Developer - 이정
지식공유자2023.03.15
이해안되시는 부분이 정확히 파악이 안되서 전체적으로 설명드립니다.
pickerview의 delegate를 연결을 했기 때문에 pickerView를 선택할 때 didSelectRow가 호출되는 것입니다.
didSelectRow에서는 선택한 row정보를 알 수 있으니 그 정보로 해야할 작업을 하게 됩니다.
아래 코드를 didSelectRow펑션 안에서 호출해도 됩니다.
selectedCurrencyName.text = rates?[selectedRow].0
selectedCurrency.text = calculateCurrency()
강의에서는 didSet을 활용하는 방법에 대한 설명이라고 보시면 될 것 같습니다.
답변 1