15일차 수업을 듣고 새로 알게된 점과 조사하고 싶은 점들을 정리한 글입니다.
Learned
- 지연 (lazy) 저장 프로퍼티
- 프로퍼티를 사용하기 전엔 nil값을 갖다가 사용할때 비로소 설정한 초기값을 가지고 메모리에 올라감
- 따라서 값이 변하지 못하는 상수(let)로 선언하지 못함.
- 지연 프로퍼티를 멤버로 가지는 클래스, 구조체가 메모리에서 해제될때 함께 해제됨.
- 타입 프로퍼티도 lazy하게 동작하지만 앱이 종료될때 메모리에서 해제된다는 차이 존재
- UIWindow 객체는 UIViewController를 투영해주는 객체
- UIViewController의 title 프로퍼티는 객체가 네비게이션 바 또는 탭 바 아이템을 갖고 있을때
이 프로퍼티에 저장된 값을 해당 아이템에 할당한다. - AppDelegate에서 새로운 Scene이 필요할때 SceneDelegate의 scene 메소드 호출
- iOS 13 이상 버전에서 초기 화면을 변경하는 방법
// AppDelegate
// 아이폰에서 connectedScene은 항상 하나 (아이패드는 아닐 수 있음)
let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
// SceneDelegate
let sceneDelegate = windowScene?.delegate as? SceneDelegate
sceneDelegate?.window?.rootViewController = CustomViewController()
// 기존의 rootViewController였던 객체는 메모리에서 해제됨
sceneDelegate?.window?.makeKeyAndVisible()
이상입니다.
'TIL' 카테고리의 다른 글
[Sesac IOS] 18일차 TIL (0) | 2022.07.27 |
---|---|
[Sesac IOS] 17일차 TIL (0) | 2022.07.26 |
[Sesac IOS] 13~14일차 TIL (0) | 2022.07.22 |
[Sesac IOS] 12일차 TIL (0) | 2022.07.20 |
[Sesac IOS] 11일차 TIL (0) | 2022.07.18 |