본문 바로가기

Tech/iOS

[iOS] Day 23 - Computed Property

728x90

어찌저찌 구현이 안되는 것을 잡아가고 있다

첫 이미지가 구현이 안되는건

왜 안될까..

거의 다 온 느낌이지만 알듯 말듯 하다


Computed Property(연산 프로퍼티)

저장 Property 값을 연산(계산)하여 반환하는 역할을 한다

 

get은 읽기전용으로 단독으로 쓰일 수 있지만 set은 단독으로 사용 불가능하다

 

getter : 프로퍼티 값을 가져온 후 계산 후에 반환해준다

setter : 새로운 값(newValue - default parameter)을 가져온 후 저장 프로퍼티에 있는 값을 변경해준다

 

순서

1. setter에 새로운 값이 들어오면 저장 프로퍼티의 값을 변경(setting)해준다

2. setter에서 연산한 후 반환 

3. getter에서 setter에서 반환된 값을 가지고 연산 후 반환

 

주의점 Computed Property는 계산된 값이 달라지기 때문에 항상 var

 

static 활용도 가능하지만 대신 타입 저장 프로퍼티와 같이 사용되어야한다 

 

enum SettingOptions: Int, CaseIterable {
    case total, personal, others // 섹션
    
    var sectionTitle : String {
        switch self {
        case .total:
            return "전체 설정"
        case .personal:
            return "개인 설정"
        case .others:
            return "기타"
        }
    }
    
    var rowTitle: [String] {
        switch self {
        case .total:
            return ["공지사항", "실험실", "버전정보"]
        case .personal:
            return ["개인/보안", "알림", "채팅", "멀티프로필"]
        case .others:
            return ["고객센터/도움말"]
        }
    }
}

예전에 이미 한번 사용한 경험이 있다

열거형은 타입 자체라 저장 프로퍼티는 사용하지 못 한다

왜?

열거형은 compile time에 확정이 이루어져야 하기 때문에 인스턴스 생성이 불가능하다

 

저장프로퍼티는 사용 불가능 하지만 단순 저장 목적이 아닌 연산 목적인 연산 프로퍼티와 애초에 값이 정해져 있는 타입 저장 프로퍼티는 사용 가능

'Tech > iOS' 카테고리의 다른 글

[iOS] Day 25 - UIPickerView & WebView  (0) 2022.07.28
[iOS] Day 24 - Property Observer  (0) 2022.07.27
[iOS] Day 22 - Xcode Tip, bundle File 생성 방법  (0) 2022.07.25
[iOS] Day 19 - 첫 화면 구현  (0) 2022.07.22
[iOS] Day 19 - 데이터 전달  (0) 2022.07.22