목록swift 시작기 (21)
BOID
안녕하세요 HoonIOS입니다 :) 이번에는 타입 중첩에 대해 공부를 해봤습니다. iOS 공부하면서 처음 본 부분이라 뭔가 간단하면서 복잡했지만 이해하면서 정말 유용한 방식이라고 생각이 들었습니다 ㅎㅎ 타입 중첩이란? - 타입 내부에 타입을 정의하고 구현할 수 있는데 이렇게 타입 내부에 새로운 타입을 선언해 준 것을 중첩 타입이라고 부릅니다. - 정의에 의하여 다시 자세하게 설명을 해보면 클래스 내부에 새로운 클래스. 새로운 구조체, 새로운 열거형을 정의할 수 있고 반대로 구조체 내부에 새로운 열거형 등의 타입을 중첩해서 새 타입으로 정의할 수 있습니다. - 야곰님의 책에 있는 예제를 보고 설명해보겠습니다. //클래스 타입 안에 새로운 열거형 타입 선언 class Person { enum Job { ca..
안녕하세요 HoonIOS입니다 :) 스위프트 버전 2.0을 발표하면서 스위프트는 프로토콜 지향 언어라고 말을 했는데요 그럼 프로토콜 지향 언어는 무엇인지에 대해 알아보겠습니다. 스위프트 표준 라이브러리를 보면 타입과 관련된 소스는 클래스 형태가 아니라 구조체 형태로 되어있는 것을 확인할 수 있습니다. 여기서 많은 분들이 의심을 가질께 구조체 형태면 상속이 되지 않는데 어떻게 그렇게 많은 기능을 구현하지?라는 의문을 가지 실수 있습니다. - 이 해답은 프로토콜. 익스텐션, 제네릭이 있습니다. ( 익스텐션이란? , 제네릭이란? ) 프로토콜이란? - 아직 프로토콜은 포스팅을 하지 않아서 간단히 설명해 보겠습니다. - 프로토콜에 정의한 프로퍼티, 메소드는 필수 정의해야 하는 조건입니다. - 타입마다 해당 프로토..
안녕하세요 HoonIOS입니다 :) 저번에는 제네릭의 개념과 제네릭 함수, 타입, 타입 확장에 대해 알아봤는데요, 이번에는 타입 제약 즉 특정 타입에 한정되게 제약을 두는 것과 프로토콜과 서브 스크립트에서 제네릭을 사용하는 것에 대해 알아보겠습니다. 제네릭의 타입 제약 - 앞 포스팅에서는 제네릭 타입 제약을 받지 않는 제네릭 함수를 구현해 보았는데, 만약 특정 타입에서만 한정되어야 할 처리가 있다던가, 제네릭 타입을 특정 프로토콜을 따른느 타입만 사용할 수 있도록 제약을 두어야 하는 상황이 있으면, 이때 타입 제약을 통해서 제약사항을 지정해 줄 수 있습니다. - 타입 제약은 클래스 또는 프로토콜에서만 줄수 있습니다. 이 말은 즉 타입 매개변수 자리에 사용할 실제 타입이 특정 클래스를 상속받는 타입이어야 ..
안녕하세요 HoonIOS입니다 :) 반가워요 이번에는 제네릭에 대해서 알아보겠습니다, 이 부분은 들어본 적은 있지만 개념을 잘몰라 공부를 해봤습니다. 그 내용을 한번 포스팅 해볼려고 합니다 재밌게 읽어주세요 ㅎㅎ 제네릭이란? - 제네릭을 이용해 코드를 구현하면 어떤 타입에도 유연하게 대응할 수 있습니다. 또 제네릭으로 구현한 기능과 타입은 재사용하기도 쉽고 코드의 중복을 줄일 수 있기 때문에 추상적인 표현이 가능합니다. - 실제로 제네릭은 애플 표준 라이브러리에서도 많이 사용을 합니다. 예를들어, Array, Dictionary, Set 등의 타입은 모두 제네릭 컬렉션입니다. Int, String타입을 요소로 갖는 배열을 만들거나 그 외의 어떤 타입도 배열을 요소로 가질 수 있었던 것은 모두 제네릭 덕분..
안녕하세요 HoonIOS입니다 :) 이번은 swift의 extensions에 대해 공부를 해봤는데요, 제가 생각한 것보다 훨씬 포괄적이고 제가 모르는 부분이 많아서 포스팅을 했습니다. 그럼 한번 알아보겠습니다. extensions 란? * 애플 공식 문서에서 정의된 extensions - 공식문서에서 보면 새로운 함수적 기능을 class, structure, enumeration, or protocol type에 확장한다는 의미를 지니고 있습니다. - 익스텐션은 스위프트의 강력한 기능 중 하나로 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있다. - 스위프트의 익스텐션이 타입에 추가할 수 있는 기능은 다음과 같다. 연산 타입 프로퍼티/ 연산 인스턴스 프로퍼티 타입 메서드/ 인스턴스..