iOS/iOS SeSAC 2기 TIL

옵셔널 바인딩, 인스턴스/타입 프로퍼티

Developer-Michelle 2022. 7. 21. 16:29

1.옵셔널 바인딩: if-let, guard 구문 2가지가 있다. (참이 먼저 실행됨 / return)

변수, 상수가 정의 되어있는 곳이 다르다.의 차이

어떤 상황에 if-let, guard구문을 각각 쓰는게 나은가?

if-let 은 중괄호가 더 늘어남.

 

2. 프로퍼티란? var, let 으로 선언했던 형태가 클래스나 구조체에 들어가면 이렇게 부름.

프로퍼티를 인스턴스를 기준으로 나눈다면? - 2가지로 나뉜다: 인스턴스 / 타입(static)

단, 프로퍼티를 역할 기준으로 나눈다면? 저장 / 연산 / 감시자 프로퍼티로 나뉜다. (인스턴스 / 타입 둘다 될 수 있음)

오늘 내용: 저장 프로퍼티

저장 프로퍼티(상수 저장 프로퍼티/변수 저장 프로퍼티 - 상수로 선언했냐 변수로 선언했냐의 차이)

 

인스턴스 프로퍼티 vs. 타입 프로퍼티(static으로 선언)

-인스턴스 프로퍼티 (인스턴스를 통해 접근할 수 있는 프로퍼티)

-타입 프로퍼티: 앞에 static이 붙으면 메모리에 한군데에서만 저장. 타입 그 자체로서 사용. 인스턴스를 만들어 사용하는게 아니라 바로 User.staticNickname으로 사용 (클래스 타입으로 접근)

호출하지 않으면 초기화하지 않음. User.staticNickname로 불러줘야 초기화됨.

값이 변하지 않는 걸 이걸로 선언해두면 좋음.

User.staticNickname // 메모리에 올라감. 인스턴스를 생성한다고 해서 초기화가 되지 않고, 사용할 때 초기화가 된다.

// 호출시 메모리에 올라가서 앱이 꺼질때까지 사라지지 않음.

 

cf)

typeProperty_practice.playground 파일 참조