Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Enumerations 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Enumeration(이하 ENUM)은 관련된 값들을 그룹으로 묶어서 common type 으로 정의해준다. ENUM을 이용하면 타입에 안전한(type-safe) 코드를 작성할 수 있다.C에서의 ENUM은 각 케이스마다 Integer 값을 할당했었다. 이것을 raw value라고 한다. Swift에서의 ENUM은 raw value로 여러가지 타입을 사용할 수 있고 심지어 항상 raw value 를 할당하지 않아도 된다. 또한 케이스 각각에 연관된 값들(associated values)을 지정할 수 있다.Swift에서의 ENUM은 기존에는 clas..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Closures 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며클로저는 코드 내에서 전달되거나 사용될 수 있는 기능을 독립적으로 포함하는(self-contained) 블록이다. C와 Objective-C에서의 블록과 유사하다.클로저는 자신이 정의된 콘텍스트에 존재하는 상수/변수의 참조를 캡쳐해서 저장할 수 있다. (closing over) 즉 클로저는 자신이 정의되어 있는 곳의 scope에 속하는 상수/변수의 참조에 접근할 수 있다는 말이다. Swift는 이 과정에서 메모리 관리를 알아서 관리해준다. 캡쳐라는 개념을 모르더라도 걱정하지 마시라. 나중에 자세히 다룬다. 참고로 이 포스트에서는 가이드에 나온 그대로 캡..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Functions 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며함수는 특정 task를 수행하는 자기완결성(self-contained)을 가진 코드들의 집합이다. Swift에서의 함수 문법은 C 스타일의 함수부터 Objective-C 스타일의 메서드까지 모두 표현할 수 있을만큼 유연하다. 함수 파라미터에 디폴트 값을 설정할 수도 있고, 변수를 in-out 파라미터로 넘겨서 함수 실행 후 해당 변수의 값이 변하게 만들 수도 있다.Swift의 모든 함수는 타입을 가진다. 이 타입이라는 것은 함수의 파라미터 타입과 리턴 타입으로 구성되어 있으며, Swift에서 쓰이는 다른 타입들과 마찬가지로 다룰 수 있다. 따라서 함수..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Control Flow 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Swift는 C 스타일 언어와 유사한 스타일의 Control Flow Statements를 제공한다. task를 여러 번 실행하기 위해 while 문을, 조건에 따라 다른 코드를 수행할 수 있도록 if, guard, switch 문을, 수행 도중 특정 코드로 건너뛸 수 있도록 break, continue 문을 제공한다.Swift는 for-in loop를 제공한다. 이것은 array, dictionary, range, string 등을 순회할 때 유용하게 사용할 수 있다. 뒤에서 살펴보겠다.Swift의 Switch 문은fall through (br..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Collection Types 중 Dictionary 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Dictionary는 같은 타입의 Key들과 같은 타입의 Value들이 서로 1:1로 연결되어 있는 Collection 타입이다. Key는 그 각각이 유니크하며 Value를 위한 identifier역할을 한다. 저장 순서는 따지지 않는다. 실제 세계에서의 사전처럼 사용할 Collection Type이 필요할 때 Dictionary를 사용할 수 있다. Swift’s Dictionary type is bridged to Foundation’s NSDictionary class. Dictionary Type Shortha..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Collection Types 중 Set 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Set은 같은 타입의 값을, 중복되지 않게, 순서없이 저장하는 Collection Type.저장순서를 알 필요없고, Collection 안의 값이 모두 유니크해야 할 때 Set을 사용하면 적절하다. Swift’s Set type is bridged to Foundation’s NSSet class. Hash Values for Set TypesSet에 저장될 Type은 반드시 hashable 해야한다.hashable 한 Type이란? : 그 Type이 hash value를 알려줄 수 있다hash value 란? : a = b 일..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Collection Types 중 Array 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며Swift에서는 값을 저장하기 위한 세 가지 기본적인 콜렉션 타입 Array, Set, Dictionary를 제공한다.Array : 넣은 순서대로 저장되는 콜렉션Set : 값이 중복되지 않는 순서없는 콜렉션Dictionary : key-value 관계를 가지는 순서없는 콜렉션이 콜렉션 타입들 역시 다른 상수 변수와 마찬가지로 type 체크에 엄격하다. 즉 한번 저장할 값의 type을 정하면 다른 type의 값은 저장할 수 없다. (Any 타입으로 지정시에는 다른 타입의 값들을 저장할 수 있다. Any 타입에 대해서는 나중에 ..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Strings and Characters 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며String은 문자열을, Character는 문자를 저장할 수 있는 타입이다.스위프트의 String은 단순한 문법으로 다룰 수 있다. 특히 String 두 개를 연결할 때 + 연산자만 사용하면 되는데, 이 부분은 Objective-C에 비하면 편해졌다.String에 특정 상수/변수 등을 포함해야 할 때는 Objective-C와 다르게 String 리터럴 안에 \(변수이름)을 넣어야 한다. String Interpolation 부분에서 자세히 살펴보겠다.유니코드 호환이 잘 된다. 모든 String은 encoding-independ..
Apple 제공 Swift 프로그래밍 가이드(3.0.1)의 Basic Operators 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 들어가며스위프트는 표준 C 연산자를 대부분 지원한다.스위프트의 연산자에는 코딩 오류를 미리 잡아주기 위한 몇 가지 특별한 점들이 있다. 다음은 그 예시 몇 가지이다.할당 연산자(=)는 어떤 값도 return 하지 않는다. ( if 조건문 안에서 = 대신 == 를 사용하는 것을 방지하기 위해)산술 연산자(+, -, *, /, % 등)는 오버플로우를 미리 감지하여 그런 연산을 허용하지 않는다. (연산결과가 저장될 변수에 오버플로우된 값이 할당됨을 방지하기 위해)또한 스위프트에는 범위 연산자 a..
Swift 3.1 가이드에 대응하는 정리글을 작성하였습니다!!!Access Control 정리 최신버전 > http://wlaxhrl.tistory.com/61 Apple 제공 Swift 프로그래밍 가이드(2.2)의 Access Control 부분을 공부하며 정리한 글입니다. 개인적인 생각도 조금 들어가있습니다. 문서 본문 중 생략된 부분이 많습니다. 들어가며Access control 을 이용하면 외부 소스파일/모듈에 있는 코드에서 자신의 코드에 접근하는 것을 제한할 수 있다. 자신의 코드 구현부를 숨기거나, 외부에서 사용할 인터페이스를 확실하게 지정하고 싶을 때 유용하다.Access level 은 클래스, 구조체, ENUM 등의 타입에 각각 구체적으로 지정할 수 있으며, 타입 안에 속한 프로퍼티, 메서..