Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- css학습
- Safari Inspector
- firestore
- Swift디자인패턴
- AutoLayout
- SWIFT
- five lines of code
- RxSwift
- firebase
- ios면접
- UIKit
- storekit2
- 프로그래머스
- alamofire
- 리팩터링
- unittest
- five lines of cdde
- 카카오맵클론
- Swift코딩테스트
- TDD
- IOS
- Di
- hackerrank
- 클린코드
- RC
- 코딩테스트입문
- 앱의생명주기
- ARC
- mrc
- algorithm
Archives
- Today
- Total
샘성의 iOS 개발 일지
Strong과 Weak 참조 방식에 대해 설명하시오. 본문
728x90
1. Strong 참조 (강한 참조)
- 해당 인스턴스의 소유권을 가짐
- 자신이 참조하는 인스턴스의 reference count를 증가시킴
- 값 지정 시점에 retain(RC +1)이 되고, 참조가 종료되는 시점에 release (RC -1)가 됨
- 앞에 weak / unowned를 적지 않는다면 default로 강한 참조를 하게 됨.
- 강한 참조의 규칙을 모르고 사용하게 되면 메모리 누수(Memory Leak)가 발생할 수 있음.
2. Weak 참조 (약한 참조)
- 해당 인스턴스의 소유권을 갖지 않음
- 자신이 참조하는 reference count를 증가시키지 않음
- 선언할 때 앞에 weak 를 붙여서 사용
- 옵셔널 타입으로만 선언 가능 (참조하고 있던 인스턴스가 사라지면 속성을 nil을 할당 하기 때문)
- 강한 참조로 인해 발생하는 순환참조를 방지할 수 있음
3. 비소유 참조(Unowned Reference)
- 하나의 객체가 다른 객체를 참조하더라도 RC 숫자를 올리지 않는 참조 방식
- 선언하는 변수 앞에 unowned 키워드를 붙여 사용
- 비소유 참조로 참조하고 있던 인스턴스가 사라지면 해당 인스턴스를 참조하던 속성이 nil로 초기화 되지 않고 에러 발생
⇒ 속성에 nil을 할당하는 코드 구현 필수 - nil로 초기화되는 인스턴스보다 훨씬 더 짧게 존재할것이 보장 될 때 unowned 사용
728x90
'iOS > 면접' 카테고리의 다른 글
UIWindow 객체의 역할은 무엇인가? (0) | 2023.06.22 |
---|---|
UIView 에서 Layer 객체는 무엇이고 어떤 역할을 담당하는지 설명하시오. (0) | 2023.06.19 |
Retain Count 방식에 대해 설명하시오. (0) | 2023.06.15 |
ARC란 무엇인지 설명하시오. (2) | 2023.06.15 |
Left Constraint 와 Leading Constraint 의 차이점을 설명하시오. (0) | 2023.06.13 |