저는 현재 CS 193P를 따르고 있습니다. 강의 2에 있습니다. 이전에이 수업을 들으 셨다면, 방금 넘기는 수를 출력하는 라벨을 추가 한 것입니다. UILabel의 텍스트 변경
I는 강사 flipCount 용 세터 내부에서 flipsLabel의 텍스트를 변화주의 :
여기 (강의에서 원래 코드) 뷰와 컨트롤러의 스크린 샷이다. 그러나 touchCardButton 메서드가 호출 될 때마다 flipsLabel 객체에 메시지를 보내는 것이 더 쉽고/더 직관적이라고 생각합니다. 수정 후의 스크린 샷은 다음과 같습니다.
강사가 그런 식으로 그 이유를 설명 할 수 있습니까? 그는 "여기 getters와 setter의 또 다른 장점은 UI를 속성과 동기화하는 것입니다."
나는 여전히 혼란 스럽다. 'self.flipsLabel'에 보낸 메시지는'flipCount'에 대한 getter도 호출합니다. 상관없이, flipCount의 값이 다른 곳에서 바뀌 었다고해도 그것이 나에게 가장 최근의 가치를 줄 것이라는 것을 보장하지 않겠는가? – Heisenberg
실제로 그것은 다른 방향입니다. 여기에서 달성하고자하는 것은 ** flipCount **가 설정 될 때마다 ** flipsLabel **을 설정해야합니다. 그래서 교수는 ** flipCount **에 대한 setter 안에 ** flipsLabel **을 설정하는 메서드를 넣습니다. 따라서 ** flipCount **가 설정되면 ** flipsLabel **이 자동으로 설정됩니다. – Ricky
오, 나는 당신이 말하는 것을 보았습니다, 그것은 꽤 좋은 속임수입니다. 교수님 만이'flipCount' 속성을'flipsLabel'을 사용하도록 제한했습니다. 그러나, 다만 호기심에서, 나는 그것을 합법적 인 방식으로하지 않습니까? 교수님이 처음에 flipCount setter가 호출되기를 기대하신다면 getter를 대신 호출하고 동일한 결과를 얻으시겠습니까? – Heisenberg