궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFT/Grammar

Swift 기초 문법 모음

서근
QUOTE THE DAY

-
Written by SeogunSEOGUN

반응형

 

Swift 객체지향, 함수형, 프로토콜 

변수와 상수

- var (변수) / let (상수)

데이터 타입 기본

- Int / UInt / camelCase

- Double / Float / Booleans

- Character / String / Any, AnyObject / nil

- Multi-line (멀티라인)

데이터 타입 고급

- Typealias (타입 별칭)

- Tuples (튜플)

- Annotations Type (어노테이션 타입)

- String interpolation (문자열 보간)

컬렉션형

- Array (배열)

- Set (세트)

- Dictionary (딕셔너리)

- Array vs Set vs Tuple 비교

- Empty Collections

열거형

- Enum (열거형)

연산자

- Operators (기본 연산자)

- Logical Operators (논리 연산자)

- Ternary Operators (삼항 연산자)

흐름 제어

조건문

- if / else if / else 

- Switch - break, fallthrough

반복문

- For 루프

- While 루프

- Repeat 루프

- Break / Continue

- 중첩된 루프에서 Break

함수

- 함수 기초 함수 고급

옵셔널

- Optional - 언래핑 옵셔널 간단

- Unwrapping with guard

구조체와 클래스

- Class / Struct / Enum 간단 비교  |  클래스 구조체 차이 

- Class 클래스

- Struct 구조체

프로퍼티와 메서드

- String의 프로퍼티 및 메서드

프로퍼티

- Properties #1 - 저장 프로퍼티, 저장 지연 프로퍼티

- Proterties #1-1 - 저장 지연 프로퍼티 - lazy

- Properties #2 - 연산 프로퍼티 - 접근자 getter, 설정자 setter

- Properties #3 - 프로퍼티 옵저버(감시자) - didSet, willSet

- Properties #4 - 타입 프로퍼티 (저장 타입 프로퍼티, 연산 타입 프로퍼티) - static, class

- Properties #4-1 - 연산 타입 프로퍼티 - static

- Properties #5 - 키 경로 (keyPath)\ .

메서드

- Method #1 - 인스턴스 메서드, self 프로퍼티

- Method #2 - mutating

- Method #3 - 타입 메서드

인스턴스 

Parameter Label (매개변수 레이블)

- Instance #1 이니셜라이저, 매개변수, 옵셔널 프로퍼티 타입, 상수 프로퍼티 - init()

- Instance #2 기본 이니셜라이저, 멤버와이즈 이니셜라이저 - extension

- Instance #3 초기화 위임, 실패가능한 이니셜라이저 - self.init(), init?()

- Instance #4 클로저 사용 프로퍼티 기본값, 디이니셜라이저 - 클로저 (), deinit

접근제어

- 공개 / 개방 / 내부 / 파일외부비공개 / 비공개 접근수준

   ↪︎ open, public, internal, fileprivate, private

클로저

- Closure #1 - 기본

- Closure #2 - 함수로 전달

- Closure #3 - Closure syntax (후행 클로저)

- Closure #4 - 후행 클로저에 매개변수 사용

- 클로저 고차함수 - map, filter, reduce

모나드 / 서브스크립트

- Monad, 컨텍스트, 함수객체 - flatMap(_:), compactMap(_:)

- Subscript(서브스크립트, 타입 서브스크립트) - subscript(_:), some[index]

상속

- Inheritance #1 - 클래스 상속(부모, 자식, 기반 클래스)

- Inheritance #2 - 재정의 및 재정의 방지  - override, super, final

- Inheritance #3 - 클래스의 이니셜라이저(지정 / 편의 / 요구 이니셜라이저) 

   ↪︎  init, convenience, required 

타입캐스팅

- Type Casting - is, .self, .Type, .type(of:), as

프로토콜

- Protocol #1 - 프로퍼티 요구사항 - protocol, { get set }

- Protocol #2 - 메서드 요구사항

   ↪︎ func, static, mutating, required, override, final, init?()

- Protocol #3 - 타입으로서의 프로토콜, Delegate

- Protocol #4 - 익스텐션, 컬렉션 타입, 상속

- Protocol #5 - 프로토콜 조합 및 준수, 캐스팅, 옵셔널 프로토콜 요구사항 - @objc

익스텐션 / 제네릭

- Extension - 연산 프로퍼티, 이니셜라이저, 서브스크립트, 중접 타입... - extension

- Generic - <T>, protocol, Hashable, Push / Pop, Stack

고급 문법

- Patterns - 와일드카드, 식별자, 값 바인딩, 튜플, 열거형 케이스, 옵셔널, 타입캐스팅, 표현 패턴

   ↪︎ _ , let (x, y): (Int, Int), case, if case let value? = , is, as, ~= 

- where 절 - 특정 패턴과 결합 - where

- ARC 메모리 관리 1 - 강한 참조 - strong

- ARC 메모리 관리 2 - 강한 참조 - 순환 문제

- ARC 메모리 관리 3 - 약한 참조 - weak

- ARC 메모리 관리 4 - 미소유 참조 - unowned

기타

- CGSize / CGRect / CGPoint

- DispatchQueue (GCD:Grand Central Dispatch)

- UITextField

- 주요 프로토콜 모음

- 주요 함수 #1

- 주요 함수 #2

 

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.