개발 (dev)/iOS
-
Swift - UITraitCollection에 대해서 알아보자개발 (dev)/iOS 2024. 1. 21. 12:18
프로젝트를 진행하면서 UITraitCollection의 userInterfaceStyle을 사용하여 다크 모드와 라이트 모드를 다루는 코드를 작성하게 되었는데, UITraitCollection에 대해서 더 공부하고 싶어져서 글을 작성하게 되었다. UITraitCollection 의 단어뜻을 해석해보면 UI에 대한 특성들 모음집 이라고 해석해 볼 수 있다. 애플의 공식문서를 읽어보니 단어뜻이랑 거의 일치하는 것 같다. https://developer.apple.com/documentation/uikit/uitraitcollection UITraitCollection | Apple Developer Documentation A collection of data that represents the enviro..
-
Swift - ARC (Automatic Reference Counting)개발 (dev)/iOS 2023. 12. 1. 18:56
ARC (Automatic Reference Counting)은 Swift에서 사용되는 메모리 관리 모델이다. ARC는 앱에서 인스턴스를 생성하고 참조할 때마다 해당 인스턴스에 대한 참조 횟수를 추적하고, 참조 횟수가 0이 되면 해당 인스턴스를 메모리에서 해제한다. ARC는 주로 힙 영역에 할당된 객체들을 자동으로 관리한다. 그렇기 때문에 명시적인 작업을 따로 해주지 않아도 되는데, 강한 참조 순환 (Strong Reference Cycle)이 발생했을때는 메모리 누수(Memory Leak)가 발생하기 때문에 명시적인 작업을 해주어야 한다. 작업은 크게 두가지로 나뉜다. 약한 참조 강한 참조순환 상태는 객체가 서로 강한 참조를 하고있는 상태이기때문에 RC(Reference Counting)값이 존재한다...
-
Swift - 타입 캐스팅개발 (dev)/iOS 2023. 11. 22. 23:27
Swift에서 타입 캐스팅이란 인스턴스의 타입을 확인하거나 변경하는 프로세스를 의미한다. 타입캐스팅은 as 연산자를 사용하여 해줄수 있다. class Animal { var species: String = "Animal" } class Dog: Animal { var name: String = "dog1" } 두개의 class가 있다고 해보자, Dog 클래스는 Animal 클래스를 상속한 클래스이다. let animal: Animal = Dog() 이와같이 타입은 Animal로 작성하고 인스턴스는 Dog 클래스로 만들어 주면 메모리의 힙 공간에는 Dog 클래스를 위한 인스턴스가 생성되게 된다. 즉, species와 name 저장 속성을 위한 메모리 공간을 따로 만들어 주는 것이다. 이상황에서는 타입을 D..