일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- iOS개발
- HIG
- 파이썬
- Swift공부
- 앱개발
- 알고리즘 공부
- UIKit
- BFS
- Android
- error
- Algorithm
- greedy algorithm
- 백준온라인저지
- 프로그래머스
- dfs
- 정렬
- 안드로이드 공부
- 파이썬 풀이
- Clean Architecture
- Kotlin
- ios
- 알고리즘
- 백준 온라인 저지
- Autolayout
- Til
- 오토레이아웃
- swift
- Python
- 그리디 알고리즘
- 공부
- Today
- Total
목록IOS App Programming/Swift (23)
Tori의 개발 공부

프로토콜이란 프로토콜 : 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의하는 것 정의해 둔 프로토콜을 실제 구조체 클래스 등에서 채택을 해 해당 요구사항을 정의한다. -> 이를 '해당 프로토콜을 준수한다'라고 표현 프로토콜을 준수하기 위해서는 요구사항을 모두 구현해야 한다. 프로토콜은 정의를 하고 요구사항을 제시만 할 뿐 스스로 기능을 구현하진 않는다. 프로토콜 구현 protocol 프로토콜이름{ 프로토콜 정의 } 프로토콜 채택 타입 명: 프로토콜 이름 형태로 사용 여러 개 채택 시 콤마로 구분 지어 사용 만약 클래스에서 프로토콜을 채택할 때, 다른 클래스를 상속받는 클래스라면 상속받을 클래스 이름 다음에 채택할 프로토콜을 나열함 ex) class A : 상속 클래스, 프로토..

타입 캐스팅이란? 일반적으로 타입 캐스팅의 의미는 형변환으로 다른 형태의 자료형으로 변환하는 것을 의미한다. swift의 특징 중 하나는 데이터 타입의 안전을 위해 각기 다른 값 교환을 엄격히 제한한다. -> 다른 언어에서 지원하는 암시적 데이터 타입 변환을 지원하지 않는다. var num :Double = 3.3 var convertedNum:Int = Int(num) convertedNum = 5.5 //오류 발생 다른 언어에서는 5.5를 대입시 Double -> Int로 암시적 형변환이 이루어져서 대입되므로 오류가 발생하지 않지만 스위프트에서는 오류가 발생한다. 스위프트에서 Int(num)부분은 타입을 변환한 것이 아니라 Int의 이니셜라이저를 통해 기존 값을 전달받아 새로운 Int구조체의 인스턴트..

옵셔널 체이닝 옵셔널 체이닝이란? nil일수도 있는 옵셔널 프로퍼티, 메서드, 서브스크립트 등을 가져오거나 호출하는 과정이다. 값이 있으면 접근을 허용하여 성공적으로 호출이 되고, 값이 없으면 nil을 반환한다. 호출하고 싶은 옵셔널에?를 붙여 표현하면 사용할 수 있다. 특징 옵셔널 체이닝의 마지막 표현식은 값이 옵셔널이든 아니던?를 생략한다. ex) A?.B? 는 안되고 A?. B로 표현해야 함 중첩된 옵셔널 중 1개라도 값이 존재하지 않으면(nil을 가지면) 결과적으로 nil을 반환한다. 그리고 nil을 반환한 옵셔널 뒤의 표현식들은 평가되지 않는다. ex) A?. B?. C?. D일 때 B가 값을 가지고 있지 않아 nil을 반환한다면 B뒤의 표현식인 C와 D는 평가되지 않고 B에서 평가를 멈추고 n..

프로퍼티란? 클래스, 구조체, 열거형 등에 관련된 값을 의미한다. (변수나 상수, 함수 등이 어디에서 어떻게 쓰이느냐에 따라 용어가 조금씩 달라질 뿐이다.) 저장 프로퍼티 인스턴스의 변수 또는 상수를 의미한다. (값을 저장하는 가장 단순한 개념의 프로퍼티) 구조체와 클래스에서만 사용 가능하다. (열거형에서는 사용 X) var 키워드를 사용하면 변수 저장 프로퍼티, let키워드를 사용하면 상수 저장 프로퍼티이다. 이니셜 라이저 구조체와 클래스의 저장 프로퍼티는 이니셜라이저 부분에서 조금 차이가 난다. [구조체 저장 프로퍼티] 프로퍼티가 옵셔널이 아니더라도 모든 프로퍼티를 포함하는 이니셜라이즈를 자동으로 생성하여 제공한다. [클래스 저장 프로퍼티] 만약 클래스의 저장 프로퍼티가 옵셔널이 아니라면 꼭 기본값을..