Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

iOS 개발일지

0726 새싹 17회차 정리 본문

SeSAC iOS 데뷔과정 2기

0726 새싹 17회차 정리

Lia's iOS 2022. 7. 26. 21:53
iOS 앱 개발자 데뷔 과정 17회차

 

 

 

 

#1. Checklist

- Type Property vs Instance Property

인스턴스 프로퍼티는 구조체나 클래스 등의 타입을 선언하고, 해당 타입에 대한 인스턴스가 생성이 되었을 때 사용이 가능하다.

인스턴스 프로퍼티는 인스턴스를 생성할 때마다 다른 값을 지닐 수 있다.

그리고 static이라는 키워드를 사용하는 타입 프로퍼티는 타입 자체에 속하는 프로퍼티로, 인스턴스가 아무리 많더라도 값이 하나이다.

타입 프로퍼티는 lazy 키워드를 붙이지 않더라도 lazy로 동작한다.

 

따라서 타입 프로퍼티의 값을 수정하면 모든 인스턴스에 수정한 값이 반영이 되지만, 인스턴스 프로퍼티의 값을 수정하면 해당 인스턴스의 프로퍼티에만 수정된 값이 반영된다.

 

 

 

- Stored Property

저장 프로퍼티는 말 그대로 저장을 위한 프로퍼티로, 일반적으로 자주 쓰이는 형태의 프로퍼티이다.

인스턴스 저장 프로퍼티를 선언할 때에는 선언과 동시에 초기화를 하거나, init을 사용하거나, 옵셔널 형태로 선언해야 한다.

Variable Stored Property : 변수 저장 프로퍼티

Constant Stored Property : 상수 저장 프로퍼티

Lazy Stored Property : 지연 저장 프로퍼티

 

 

 

- Computed Property

연산 프로퍼티는 저장 프로퍼티를 활용해서 원하는 값을 반환하는 용도로 주로 사용한다.

get만 있는 읽기 전용(read-only) 프로퍼티라도 계산하는 값에 따라 결과가 달라질 수 있기 때문에 var로 선언해야 한다.

읽기 전용으로 연산 프로퍼티를 활용할 경우 get 키워드는 생략이 가능하다.

Getter : 접근자 // 저장 프로퍼티의 값을 그대로 가져와서 연산 프로퍼티 내에서 계산한 후, 결과를 반환한다.

Setter : 설정자 // newValue라는 이름의 기본 파라미터를 통해 값을 전달받으면 저장 프로퍼티에 있는 값을 변화시킨다.

 

연산 프로퍼티의 newValue에 값을 전달하면, Setter에 따라 저장 프로퍼티의 값을 업데이트한다.

그리고 Setter에서 업데이트한 값을 이용하여 Getter에서 연산 후 결과를 반환하는 흐름이다.

 

타입 연산 프로퍼티는 인스턴스 연산 프로퍼티와 사용법은 동일하며, static 키워드만 붙으며 타입 저장 프로퍼티와 함께 사용된다.

 

 

 

 

# 그 외

- 열거형과 프로퍼티

열거형은 타입 자체이기 때문에 인스턴스 생성이 불가능하다.

따라서 인스턴스 생성을 통해서 접근할 수 있는 인스턴스 저장 프로퍼티를 사용하지 못한다.

그렇다면 인스턴스 연산 프로퍼티와 타입 저장 프로퍼티는 어떨까?

 

인스턴스 연산 프로퍼티와 타입 저장 프로퍼티는 모두 열거형에서 사용이 가능하다.

열거형에서의 연산 프로퍼티는 알게 모르게 우리가 많이 사용해왔다.

여기서 switch를 작성한 sectionTitle이 인스턴스 연산 프로퍼티이다.

열거형은 메모리의 관점에서, 열거형이 컴파일 타임에 확정되어야 하기 때문에 인스턴스 생성이 불가능한 것이다.

따라서 인스턴스에 값을 저장하는 것이 목적이 아닌 인스턴스 연산 프로퍼티와, 값이 고정되어있는 타입 저장 프로퍼티는 사용이 가능하다.

'SeSAC iOS 데뷔과정 2기' 카테고리의 다른 글

0728 새싹 19회차 정리  (0) 2022.07.28
0727 새싹 18회차 정리  (0) 2022.07.27
0725 새싹 16회차 정리  (0) 2022.07.25
0724 1차 평가과제 (3주차)  (0) 2022.07.24
0722 새싹 15회차 정리  (0) 2022.07.22