Swift 공식문서읽기 1일차... 사실은 4일차다..공식문서 랭귀지가이드가 약 30개라 한달 내로 다읽어 보자는 생각을 가지고 시작했다. 문서를 읽고 개발관련 공부를 하다보니 블로그에 내가 했던 공부나 개발과정을 기록하면 포트폴리오와 취업에도 도움이 되고 내가 공부를
Swift 공식문서 Fucntion에 관한 내용 요약본.. Func란 명령어로 언제든 필요한 함수를 내가 만들어서 콜링을 통해 사용할 수 있다. 함수는 다른함수와 연계하여 사용가능하다. 함수선언을 할 때 타입을 명확히 함으로써 반환되는 함수의 타입을 설정할 수 있다.
Closures에 관한 설명이다. 클로저는 세가지 형태로 나타낸다. 전역 함수 : 이름이 있고 어떤 값도 캡쳐하지 않는 클로저 중첩 함수 : 이름이 있고 관련한 함수로 부터 값을 캡쳐 할 수 있는 클로저 클로저 표현 : 경량화 된 문법으로 쓰여지고 관련된 문맥으로부
Enumeration. 열거형은 관련된 타입을 공통으로 설정해 안정성을 보장하는 방법이다. swift에서는 case값을 다양한 타입으로 나타낼 수 있다. 열거형의 문법은 enum키워드를 사용해 정의하고 아래에 case를 통해 값을 할당 해 준다. 또 switch 구
Structures and Classes 다른언어들과 달리 swift에서는 구조체와 클래스의 파일을 따로 저장하지않고 한곳에 저장가능하다. 클래스는 구조체는 유사한점이 많다. 그 중 다른점을 고르자면 클래스는 상속,타입캐스팅,소멸자,참조카운트가 가능하다. 클래스와 구
Properties.. 프로퍼티의 종류에는 저장프로퍼티와 계산된 프로퍼티가 있다. 이때 저장프로퍼티는 클래스와 구조체에서만 사용가능하다.저장프로퍼티는 말그대로 값을 저장하는 형태이다. 저장프로퍼티는 변수와 상수 모두 선언 가능하다. 구조체에서 상수로 선언된 값은 인
Methods 메소드는 클래스, 구조체, 열거형 관련 함수들을 의미한다. methods 말그대로 위 함수들을 도구로 이용하는 ? 그런 느낌의 단어인듯 하다. Instance Methods 인스턴스 메소드는 특정 타입의 인스턴스에 포함되어 있는 메소드이다. 인스턴스 내
Subscripts 클래스, 구조체, 열거형에서 스크립트를 사용해 정의할 수 있다. 콜렉션, 리스트, 시퀀스 등 특정 엘리먼트에 쉽게 접근할 수 있는 방법이다. 서브스크립트의 문법은 subscript키워드를 써준다. 인스턴스 메소드와 다른점은 서브스크립트는 읽고쓰기 혹
Inheritance 클래스는 메소드 프로퍼티등을 다른 클래스로 부터 상속받을 수 있다. 상속받은 자식클래스를 subclass라고 하고 부모클래스를 super class라고 한다. Defining a Base Class 다른 클래스로 부터 상속받지 않은 클래스를 ba
Initialization 초기화는 클래스, 구조체, 열거형 인스턴스를 사용하기 위해 준비하는 단계이다. 초기화는 initializer를 정의하는 것으로 구현된다. 이니셜라이저는 특정 타입의 인스턴스를 생성한다.이때 init키워드를 사용한다. 프로퍼티설정과 동시에 값을
Initialization 두번째 파트로 2단계 초기화 부터 공부하였다. Two-Phase Initialization 클래스에서 초기화는 2단계로 진행된다. 첫번째 단계에서 프로퍼티는 초기값으로 초기화된다. 두번째 단계는 인스턴스의 사용 전 저장된 프로퍼티를 커스터마
Deinitialization 디이니셜라이저는 클래스 인스턴스가 소멸되기 직전에 호출된다. deinit키워드를 사용하고 클래스타입에서만 사용 가능하다.스위프트에서는 자원의 해제를 자동으로 해주지만 수동으로 작업해야하는 경우도 있다. 이때 사용하는 것이 디이니셜라이저이다
Optional Chaining 옵셔널 체이닝은 프로퍼티, 메소드, 서브스크립트에 질의를 하면서 만약 값이 있다면 반환하고 없다면 nil을 반환하는 형태를 말한다. 만약 연결된 질문중 하나라도 nil값을 가지고 있다면 전체를 nil로 리턴한다. Optional Cha
Error Handling프로그램 동작 간 에러가 발생하면 적절한 처리를 해야한다. 이러한 과정을 에러처리라고 하는데 스위프트에서는 에러처리의 경우 에러의 발생, 감지, 증식, 조작을 지원한다. 스위프트를 사용하다 보면 자동으로 에러를 감지해서 처리 해 주기까지 해 편
Concurrency비동기 코드는 잠시 멈췄다가 나중에 다시 실행할 수 있다. 하지만 한번에 한 부분씩 실행할 수 있다. 비동기 코드는 UI를 업데이트를 진행하면서 비교적 시간이 오래 걸리는 작업들을 동시에 할 수 있다. 병렬 코드의 경우 한 시점에 여러가지 코드들이
Type Casting 타입캐스팅은 인스턴스의 타입을 확인하거나 클래스의 같은 계층에 있는 superclass와 subclass를 다루기 위한 수단이다. 타입캐스팅은 is와 as를 사용한다. Defining a Class Hierarchy for Type Castin
Nested Types 열거형은 구조체나 클래스의 기능처리를 위해 사용된다. 스위프트는 중첩기능을 제공한다. 이는 열거형, 클래스, 구조체를 타입안에서 다시 정의할 수 있다. Nested Types in Action 공식문서에는 블랙잭카드를 구조체로 정의하여 표현했다
Extensions 익스텐션을 이용해 이미 존재하는 클래스,열거형 혹은 프로토콜에 기능을 추가할 수 있다. 이러한 기능은 원본코드를 몰라도 기능을 확대 시킬 수 있다. 스위프트의 익스텐션은 계산된 인스턴스 프로퍼티와 계산된 타입 프로퍼티를 추가할 수 있다. 인스턴스
Protocols 프로토콜은 메소드, 프로퍼티 그리고 특정요구사항에 대한 기능을 정의하는 청사진 같은 역할을 한다. Property Requirements 프로토콜에서는 프로퍼티가 저장되었는지 계산된 프로퍼티인지 명시하지 않는다. 다만 요구된 프로퍼티의 이름과 타입을
Delegation 위임은 클래스와 구조체에 특정 행위에 대한 책임을 넘길 수 있게 해준다. Adding Protocol Conformance with an Extension 익스텐션은 새로운 프로퍼티, 메소드, 서브스크립트를 이 존재하는 타입에 추가할 수있다.
Generics 지네릭 코드는 유연하고 재사용이 가능하고 어떤 타입에서든 사용이 가능하다. 이는 코드의 중복을 피하고 정확한 의도를 나타낼 수 있다. 지네릭은 스위프트의 가장 강력한 특징 중 하나이다. 스위프트를 사용하면서 알게모르게 지나쳤던 array, dictio
Opaque Types opaque 리턴타입의 함수, 메소드는 자신의 리턴타입에 대한 정보를 나타내지 않는다. 대신 함수가 지원하는 프로토콜의 관점에서 리턴타입을 기술한다. 타입정보를 숨기는 것은 모듈과 그 모듈을 호출하는 경계에서 사용된다. opaque타입을 리턴하
Automatic Reference Counting 스위프트는 앱의 메모리를 추적 및 관리하는 자동참조계수를 사용한다. ARC는 인스턴스가 더 이상 필요 없을 때 사용한 메모리를 자동으로 해제한다. How ARC Works 매번 클래스의 새로운 인스턴스를 만들면 A
Memory Safety 스위프트는 코드에서 안정적이지 않는 동작이 발생하는 것을 제한한다. 스위프트는 동일한 메모리에 대한 다중접근의 경우 메모리를 수정하는 코드가 메모리에 대한 독점적인 접근을 요구하며 충돌하지 않도록 한다. Understanding Confli
Access Control 접근제어는 다른 모듈과 파일의 코드로 부터 접근을 제어한다. 코드의 상세구현을 숨기고 접근 하도록 인터페이스를 제공한다. 이때 접근수준을 개별적 타입에 할당 할 수 있다. Modules and Source Files 스위프트의 접근 제어
Advanced Operators 스위프트의 산술 연산자는 기본적으로 값이 넘치지 않는다. 만약 값넘침 동작을 사용하려면 &+와 같은 키워드를 사용해야 한다. 자신만의 구조체,클래스를 정의할 때는 자신만의 표준 스위프트 연산자를 구현하는 것이 유용하다. 미리 정의된 연