[Swift] Meta-type, self
self와 Meta-type
self와 Meta-type
Protocols and the type system
표면적인 프로토콜의 수준을 아는것만으로도 사용하기에는 충분하다
Swift를 사용하면 한번쯤은 프로토콜을 사용해 봤을것이다.
Defining a Point
연관 타입(Associated Types)
제네릭을 사용하면 모든 타입에서 작동할 수 있는 유연하고 재사용가능한 함수 및 타입을 정의할 수 있음
프로토콜은 extension하여 메소드, 이니셜라이저, subscript, 연산 프로퍼티를
프로토콜 타입 콜렉션
프로토콜 - 3 (Protocol)
위임 (Delegation)
프로토콜은 특정 작업이나 기능에 적합한 메서드, 프로퍼티 및 기타 요구사항에 대한 청사진을 제공한다
확장은 기존 클래스, 구조, 열거형 또는 프로토콜에 새로운 기능을 추가할 수 있다
열거형의 경우 구조체, 클래스의 기능들을 지원하기 위해 자주 사용됨
타입 캐스팅은 인스턴스의 타입을 확인하거나 같은 계층의 superclass, subclass로 취급하는 방법
오류 처리는 오류 상태에 대응하고 복구하는 프로세스
클래스의 인스턴스가 해지되기 직전에 호출되며
실패 가능한 초기화 (Failable Initializers)
애플 가이드북을 보고 저 나름대로 이해한 대로 풀어보겠습니다.
초기화에 관한 2번째 포스트입니다.
Swift는 인스턴스로 생성 되기 전 까지 저장 프로퍼티가 초기값을 가져야만 하는 제약조건이 있습니다.
subscript 관련한 문법의 마지막 단계에 왔습니다.
오늘 내용을 이해하기 위해서는 subscript에 대해 선행 지식이 있어야 이해가 쉬우실거에요
Dynamic member lookup
씹고 맛보기 전에 서브 스크립트를 우리는 많이 사용해 보았습니다.
특정 타입과 관련된 혹은 가지고 있는 함수를 메소드라고 합니다
프로퍼티 시리즈의 마지막 주제입니다!
프로퍼티 관찰자란?
연산 프로퍼티란?
저장 프로퍼티란?
Property란?
클래스 그리고 구조체
열거형이란?
CaseIterable?
AssociatedType?
Autoclosure
Escaping Closure란?
클로저의 정의에서
클로저 표현식 구문
Nested Functions
In-Out
Parameter 와 Returns
함수란?
Dictionary란
Array(배열)이란?
튜플이란?
옵셔널 체이닝 (Optional Chaining)
이전글 Optional에서는 Optional과 nil에 대해 알아 보았다
옵셔널이란? : 값이 없을 수 있는 상황에서 Optional을 사용한다. 옵셔널로 사용할 Type뒤에 ?를 붙여 사용한다. var number : Int? // Int 옵셔널 var text : String? // String 옵셔널
Lazy란 처음 사용되기전까지 연산이 되지 않습니다.
설명 실행 시점 캐스팅 종류 as 컴파일러가 타입 변환의 성공을 보장 컴파일 타임 업 캐스팅 as? 변환에 ...
Class Struct 레퍼런스 타입 밸류 타입 객체화시 힙영역에 저장되고 그 주소값은 스택 영역에 저장, ARC로 메모리 관리 스택 영역에 저장 ...
defer 작성된 위치와 순서에 상관없이 함수가 종료되기 직전에 호출된다 defer블록을 읽기전에 함수가 종료되면 defer블록은 실행되지 않는다. defer 블록은 여러번 사용가능하다. defer문을 만나면 순차적으로 스택에 저장되고 스코프 종료 후 하나씩 pop해...
클로저
ARC Swift에서 메모리를 자동으로 관리 특정 객체가 참조되면 참조 카운트(Reference Count, RC)를 1증가 시키고, 모든 참조가 해제되어 0이 되면 메모리에서 해제시킨다. 컴파일 단계에서 실행되고 이 때문에 추가 자원 즉, 오버헤드가 있는 GC 대비 효율적이지만...
UIView는 직사각형 영역에 대한 Contents를 관리하는 객체이며
ViewController의 책임 중 하나는 View의 Lifecycle을 관리하는 것임
Application이 실행될 때 일반적으로 다음과 같은 과정을 가짐
SceneDelegate를 사용하지 않는 프로젝트 기준으로 AppDelegate의 Lifecycle 과정과 호출되는 메소드를 정리
Application, AppDelegate, ViewController, View의 lifecycle에 대해 더 자세히 이해하고 싶어서 포스트를 작성함
앞서 iOS에서 이벤트의 흐름에 대한 로직과
도움이 되는 선행 지식
개요
Custom Slider Bar를 만들기 전 Event의 흐름과 처리방법등 전반적인 로직을 이해하기 위해 스터디한 내용을
중복된 메소드 호출1
개요
디자인 패턴의 종류
개발할 때 언제 navigationBar를 사용해야하는지, navigationItem을 사용해야 하는지
Local Notification은 Push Notification과는 다르다
각 앱에는 파일을 저장하기 위한 자체 폴더가 있으며 다른 앱에 속한 디렉터리나 파일에는 접근할 수 없음
네비게이션 뷰 컨트롤러는 다른 뷰 컨트롤러의 컨테이너 역할을 하는 특수한 뷰 컨트롤러
오토레이아웃과 Constraitns를 쉽게 사용할 수 있도록 해주는 경량 DSL인 Snapkit에 대해 알아보자
Autolayout - 코드로 작성하기
Autolayout
중앙관리자가 주변장치를 탐색하고 연결까지 하게 되면
CentralManager
설명 MVVM 패턴은 MVP와 비슷하다
설명 MVC에 이어 MVP를 알아보자
설명 Apple의 MVC를 학습하기전에 전통적인 MVC에 대해 알아보자!
왜 아키텍처를 사용해야하지?
GCD란 Apple에서 제공하는 멀티쓰레드 처리 API
Frame 상위뷰 좌표 시스템 내에서 View의 위치와 크기
생명주기 iOS에서는 화면전환을 할 때 기존의 화면 위에 새로운 화면을 쌓는 식으로 화면 전환을 합니다. 이 때 각각의 ViewController는 자신만의 생명주기를 가지고 있습니다 그래서 상황에 맞는 함수들이 호출 되는데 이 생명주기를 나타내는 대표적인 메소드들은 다음과 같습니...
App 생명주기란 앱의 실행부터 종료까지의 주기를 말하며, 앱이 foreground나 background에 있을 때 시스템 알림에 응답하고 기타 중요한 시스템 관련 이벤트를 처리하는 단계들을 말한다.
UITableView/UICollectionView 에서 Pagenation을 위해 보통 아래 방법을 사용했다.
UICollectionViewLayout 일반적인 collectionview의 delegate와 datasource는 화면에 셀을 표시하는 역할을 담당합니다 표시 할 때 구성과 같은 layout은 UICollectionViewLayout을 구현하여 처리해야합니다 커스텀 Colle...
문제 링크
배경 정렬된 배열에서 원소 x를 찾고자 할 때 사용
문제 링크
문제 링크
문제 링크
문제 링크
문제 링크
문제 링크
문제 링크
문제 링크
동적계획법이란?