훌이
후리스콜링개발
훌이

블로그 메뉴

  • 왈 (iOS APP)
  • Github
전체 방문자
오늘
어제
  • 전체 (171)
    • ⭐️ 개발 (140)
      • JAVA (4)
      • Web (5)
      • iOS & Swift (94)
      • iOS Concurrency (4)
      • Rx (18)
      • Git (6)
      • WWDC (1)
      • Code Refactor (3)
      • Server (1)
    • ⭐️ Computer Science (22)
      • 운영체제 (10)
      • 네트워크 (5)
      • PS (7)
    • 경제시사상식 (8)
    • 기타 등등 (0)

인기 글

최근 글

05-25 19:06

티스토리

hELLO · Designed By 정상우.
훌이

후리스콜링개발

[Refactor] Weather 플젝에서 연산 프로퍼티로 모델/컨트롤러 분리하기
⭐️ 개발/Code Refactor

[Refactor] Weather 플젝에서 연산 프로퍼티로 모델/컨트롤러 분리하기

2022. 8. 21. 05:39
728x90
반응형
struct Weather {
    let icon, description: String
    let wind: Double
    let humidity, temp, tempMax, tempMin: Int
    
    var tempLabel: String {
        return "현재 온도는 \(temp)°"
    }
    
    var maxMinLabel: String {
        return "최고 \(tempMax)°  최저 \(tempMin)°"
    }
    
    var humidityLabel: String {
        return "현재 습도는 \(humidity)% 입니다."
    }
    
    var windLabel: String {
        return "현재 풍속은 \(wind)m/s 입니다."
    }
    
    var descriptionLabel: String {
        return description.convertKorean()
    }
}


우와,, 나 이렇게,,,,,, 구조체에 프로퍼티를 추가하면 당연히 초기화도 해줘야 된다고 생각했다......
왜지ㅣ......? 왜.. 안뜨지?

왜 안뜨는지 답 찾아내서 추가하자.
답은,, 연산 프로퍼티는 값을 저장할 곳이 없다. 긍까 얘는 다른 저장 프로퍼티를 사용할 아이인데.. 그렇다는 것은 애초에 초기화해줄 필요도 없는 것이다...으악..



Weather 모델에서 연산 프로퍼티를 통해서 기존 뷰컨에서 이렇게 적었던 코드를
모델에서 처리해줌으로써 데이터 가공을 뷰컨이 아닌 모델에서 처리할 수 있게끔 했다. 는 사실 멘토님 핃백임...감사함당..ㅎ😻


매번 항상 프로퍼티 옵저버랑, 타입 프로퍼티, 연산 프로퍼티 이놈자식들이 너무 어려운데... 그래도 쓰고 나면 싱낭당...;;..ㅎㅎ
여하튼, 이번에도 어케 쓰겠다고 했다가 무한 재귀라고 해야 하나 그런 오류 메시지가 뜨도록 잘못 써줘버렸다..

연산 프로퍼티는 다른 저장 프로퍼티가 필요한 놈이다. 그렇기에 읽거나 쓸 수 있는 다른 저장 프로퍼티가 먼저 필요하다.
get : 연산 후 값을 가져오는 것
set : 연산하는 것

get 구문 자체를 생략해줄 수도 있기에 return으로 바로 적어줄 수 있다!
set만 써줄 수 없다는 점!
get만 썼을 시에 set으로 접근하는 것은 불가능하다는 점!



긍데 더 조은 방법 잇으면 알려주세여...

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'⭐️ 개발 > Code Refactor' 카테고리의 다른 글

[Refactor] Enum을 사용해서 화면 분기처리하기  (0) 2022.08.13
[리팩토링] 캐치미 프로젝트에서 프로퍼티 옵저버 적용하기  (1) 2022.08.02
    '⭐️ 개발/Code Refactor' 카테고리의 다른 글
    • [Refactor] Enum을 사용해서 화면 분기처리하기
    • [리팩토링] 캐치미 프로젝트에서 프로퍼티 옵저버 적용하기
    훌이
    훌이

    티스토리툴바