일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- delegate
- 이니셜라이저
- 코딩테스트
- init
- type
- Xcode
- extension
- 스위프트
- struct
- Terminal
- IOS
- Git
- Protocol
- interpace
- property
- enum
- tuist
- UIKit
- 디자인패턴
- String
- Swift
- Class
- initializer
- Method
- initalizer
- Foundation
- instance
- url
- Unicode
- optional
- Today
- Total
목록전체 글 (78)
아리의 iOS 탐구생활

프로토콜(Protocol)은 최소한으로 가져야할 속성이나 메서드를 정의해줄 수 있다. 구현은 하지않고 정의만 하는게 특징이다. 프로토콜을 적용하면 프로토콜에서 정의한 속성과 메서드를 모두 구현해야 한다. 하나의 타입으로 사용되기 때문에 아래와 같이 타입 사용이 허용되는 모든 곳에 프로토콜을 사용할 수 있다. 함수, 메소드, 이니셜라이저의 파라미터 타입 혹은 리턴 타입 상수, 변수, 프로퍼티의 타입 배열, 딕셔너리의 원소타입 🔍 기본형태 protocol name { // 프로토콜 정의 } 구조체, 클래스, 열거형 등에서 프로토콜을 채택하려면 타입 이름 뒤에 콜론”:”을 붙여준 후 채택할 프로토콜 이름을 쉼표”,”로 구분하여 명시해준다. SubClass의 경우 SuperClass를 가장 앞에 명시한다. st..

🔍 Swift는 메모리 관리를 어떻게 할까? ARC(Automatic Reference Counting)를 사용한다. 🔍 RC(Referenc Count)란 무엇인가? 인스턴스를 현재 누가 가르키고 있느냐 없느냐(참조하냐 안하냐)를 숫자로 표현한 것. 참조 계산 시점: Complie Time에 언제 참조되고 해제되는지 결정되어 런타임 때 그대로 실행된다. 장점: 개발자가 참조 해제 시점을 파악할 수 있고, RunTime 시점에 추가 리소스가 발생하지 않는다. 단점: 순환 참조가 발생 시 영구적으로 메모리가 해제되지 않을 수 있다. Objective-C는 MRC(직접 할당/해제)를 사용했었다. 🔍 RC는 어떤 기준으로 숫자를 셀까? Count Up : 인스턴스의 주소값을 변수에 할당할 때 인스턴스 생성(새..

✔️ Class’s initalizer 🔍 Designated initalizer (지정 초기화) 흔히 보는 기본적인 initalizer이다. 부모 Class의 initalizer를 호출할 수 있다. class 내부에는 반드시 한 개 이상의 Designated initalizer가 있어야 한다. init(매개 변수) { /* 구현부 */ } 🔍 Convenience initalizer (편의 초기화) Designated initalizer의 일부 매개변수의 기본값을 설정하여 초기화하는 initalizer이다. 쉽게 말하면 기존 Designated initalizer에 default를 주고 싶은 경우에 사용한다. 더 적은 입력으로 초기화를 편리하게 할 수 있게 도와주는 역할을 한다. convenience ..

✔️ Struct’s initalizer 종류 🔍 Memberwise initalizer 구조체 내에 프로퍼티가 하나라도 초기화 되지 않은 경우, 초기값이 없는 속성을 매개변수로 갖는 Memberwise initalizer가 제공된다. 속성이 모두 let으로 값까지 모두 초기화 되어있는 경우에는 Memberwise initalizer는 제공되지 않는다. 🔍 기본 initalizer 프로퍼티가 모두 초기화 되어있는 경우 매개변수가 없는 initalizer가 제공된다. struct Sample { let own: Int let two: String let three: Bool } let test1 = Sample(own: 1, two: "문자열", three: true) // Memberwise inital..

이니셜라이저(initalizer)란? 쉽게 예를 들어본다면 아이폰에서 공장초기화를 하는 것을 생각해보면 된다. 초기에 상품이 나올때의 상태로 세팅하는 것과 같다고 볼 수 있다. class, struct, enum 등의 Instance를 생성할 때 필요한 값들을 넣어주는 준비 작업이다. Property의 초기값을 설정한다. 초기화 작업이 완료되면 메모리에 Instance가 생성 된다. 가장 기본적인 형태는 매개변수가 없는 형태이다. init() { // 이 곳에서 초기화를 구현 } struct Say { var text = "말" init() { print(text) } } let test = Say() // 출력: 말 🔍 기본값을 지정하여 초기화 초기화할때 프로퍼티의 선언과 동시에 값을 할당하면 그 값을..