[SwiftUI] SwiftUI 뷰(View) 이해하기
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 서론 SwiftUI를 사용해서 개발을 할 때 중요한 요소 중 하나는 SwiftUI의 내장 뷰를 활용하는 동시에, 개별적으로 커스텀 뷰를 생성하여 사용자 인터페이스 디자인을 선언하는 방법을 익히는 것입니다. 그래서 이번에는 포스팅에서는 SwiftUI 뷰의 개념에 대해서 정리를 하고 어떻게 구성이 되어 있는지 정리 해볼까 합니다. SwiftUI 뷰 먼저 사용자 인터페이스 레이아웃은 뷰 사용과 생성, 그리고 결합을 통해서 SwiftUI로 구성됩니다. 가장 먼저 뷰(View)에 대해서 이해하는 것이 중요한데, SwiftUI에서 뷰는 View 프로토콜을 따르는 구조체로 선언되게 됩니다. 이 View 프로토콜을 따르도록 하기 위해서 구조체는 body 프로퍼티를 가지고 있어야 하고 바로..
[Swift] 초기화(Initializers) 알아보기 (6) - Failable Initalizers
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 실패 가능한 이니셜라이저(Failable Initailzer)에 대해서 포스팅을 하려고 합니다. 그럼 바로 시작하겠습니다! 실패 가능한 이니셜라이저(Failable Initailzer)란?개발을 하다 보면 이니셜라이저를 통해 인스턴스를 초기화할 수 없는 예외 상황들을 만나게 됩니다. 예를 들어보면, 이니셜라이저의 전달인자로 잘못된 값이나 적절치 못한 값이 전달 되었을 때, 이니셜라이저는 인스턴스 초기화에 실패할 수 있습니다.  Swift에서는 초기화 과정에서 잘못된 파라미터 값이 들어올 경우 이를 안전하게 처리하기 위한 방법으로 실패 가능한 이니셜라이저(Failable Initializer)를 제공합니다. 실패 가능한 이니셜라이저는 클래스, 구조체, 열거..
[Swift] 초기화(Initializers) 알아보기 (5) - 요구 이니셜라이저
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅은 저번 포스팅들에 이어서 초기화에 대해 정리해볼 건데 이번에 다룰 내용은 요구 이니셜라이저입니다! 그럼 바로 시작하겠습니다! 요구 이니셜라이저란?요구 이니셜라이저(required initailzer)는 '반드시 필요한 초기화 방법'을 의미합니다. 클래스를 만들 때, 그 클래스를 기반으로 만들어지는 모든 서브클래스가 반드시 따라야 하는 초기화 규칙을 정하는 것입니다. 이 규칙은 'required'라는 키워드를 사용해서 정합니다. 이게 무슨 말인지 잘 모르겠죠? 좀 더 쉽게 설명해보겠습니다. 예를 들어, 핸드폰을 생산하는 회사가 있다고 생각해보겠습니다. 이 회사는 모든 핸드폰이 반드시 '제품 번호'를 가지도록 만들어야 합니다. 그래야 각 핸드폰을 식별하거나 문제가 ..
[Swift] 초기화(Initializers) 알아보기 (4) - 이니셜라이저의 상속 재정의와 자동 상속
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서도 저번에 이어서 초기화(Initializers)에 대해 정리를 해볼텐데 이번에는 초기화 중에서 상속과 재정의에 대해서 알아보도록 하겠습니다! 그럼 바로 시작하겠습니다. 이니셜라이저 상속과 재정의Swift에서 이니셜라이저는 기본적으로 부모 클래스로부터 상속되지 않는 특성을 가지고 있습니다. 이는 자식 클래스가 부모 클래스의 이니셜라이저를 그대로 사용할 경우, 자식 클래스의 새로운 인스턴스가 완벽하게 초기화되지 않는 문제를 예방하기 위함입니다. 그러나, 특별한 상황에서는 부모 클래스의 이니셜라이저가 자동으로 상속되기도 합니다.(이 내용은 아래에서 다시 설명하도록 하겠습니다) 만약 자식 클래스에서 부모 클래스의 이니셜라이저를 사용하고자 한다면, 동일한 이니셜라이저..
[Swift] 초기화(Initializers) 알아보기 (3) - 2단계 초기화
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 지난번 포스팅들에 이어서 초기화(Initializers)에 대해서 알아볼 예정인데 이번에는 '2단계 초기화(two-phase initialization)' 라는 것에 대해 한 번 살펴보려고 합니다. 그럼 바로 시작하겠습니다! 2단계 초기화Swift의 클래스 초기화는 2단계 초기화(two-phase initialization)를 사용합니다. 먼저 1단계 초기화는 클래스에 정의한 각각의 저장 프로퍼티에 초깃값을 할당합니다. 이 단계에서는 모든 저장 프로퍼티에 초기값이 할당되어야 합니다. 그 이유는 모든 프로퍼티가 유효한 상태로 인스턴스가 생성될 수 있도록 보장하기 위해서 입니다.class Human { var name: String var age: ..
[Swift] 초기화(Initializers) 알아보기 (2) - 구조체, Memberwise, 클래스의 초기화, 지정/편의 초기화
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 저번 포스팅에 이어서 초기화(Initializer)에 대해서 정리를 해볼 건데 이번에는 구조체와 클래스의 초기화에 대해서 한 번 정리를 해보려고 합니다. 저번 포스팅이 궁금하신 분들은 여기를 참고해주세요! 그럼 바로 시작하겠습니다. Swift에서 클래스와 구조체는 둘 다 인스턴스를 초기화하는 initializer를 가지고 있습니다. Initializer는 특별한 메소드로, 클래스나 구조체의 인스턴스가 생성될 때 호출됩니다. 이를 통해 모든 속성이 적절한 초기값으로 설정됩니다. 구조체의 Initializer구조체는 기본적으로 Memberwise Initializers를 제공합니다. 이는 구조체가 자동으로 제공하는 생성자로, 파라미터를 통해서 모든 프로퍼티의 ..