이번은 Swift시리즈로 개발자로 회사에 입사하게 되어, Swift를 전체적으로 되돌아 보는 시간을 갖게되었다.전체적으로 Swift의 공식 사이트의 내용을 보며 리뷰하게 되었다.링크텍스트이번 계기를 통해 Swift에서 몰랐거나 새롭게 추가된 기능, 좁았던 시야에서 보지
이번 역시도 보면 알만한 내용들나름 편리한 기능에 속하는 내용인데 한개의 함수에서 여러개의 return값을 생성해서 뱉을 수 있다.자주 쓰는 기능중 하나.인자값의 길이가 길어지면 줄이려는 아이디어를 많이 내곤하는데,띄어쓰기를 통해 더 상세한 설명을 붙여써서 가독성면에서
사용자가 정의한 코드를 전달할 수 있는 Block.타언어에서는 람다식과 비슷한 기능이다.앞서 배운 function은 이름있는 closure이다.앞으로 다룰 내용들은 이름이 없는 closure라고 생각을 하면 된다.function은 1급 객체이므로 상위 개념인 closu
단순히 Class, Struct, Value 등을 저장할 수 있는 기능가장 일반적인 기능lazy로 선언을 하게되면 호출 전까지는 생성을 하지 않는다.상황에 따라서 조건부로 사용되거나 꼭 init 시점에 호출이 필요가 없다면,적당히 사용한다면 불필요한 리소스를 사용을 줄
Safety를 강조하는 Swift에서 null(nil)을 다루는 방법.Optional 이라는 Type을 통해 nullable을 결정.타언어들과 비교해서 optional이란 타입만 nil을 가질 수 있게 되어,컴파일 단계에서 nil에 대한 예외처리가 강제된다.null p
기본적으로 error protocol을 구현해 error의 case를 정의 할 수 있다.throwing function을 구현해 에러를 발생시킬 수 있는 함수try? 구문을 사용하면 에러가 발생 시 optional 값으로 반환을 할 수 있습니다.do - catch 보다
캐스팅 예시를 위해 아래와 같이 MediaItem 들을 상속하는 object를 구현.is 구문을 이용해 해당 구문의 타입이 비교하는 타입과 일치하는지 알아 볼 수 있다.is 구문을 통해 type check를 할 수도 있지만 해당하는 타입으로 바로 가져오기 위해선 as?
프로토콜은 해당 프로토콜을 따르는 클래스, 구조체, 열거형이 프로토콜을 만족시키는 기능을 구현을 도와주는 구문.iOS는 스스로가 Protocol Oriented Programming (POP)라고 부르는 만큼 Protocol의 사용을 굉장히 장려하고 있다.추후 디자인패
서브스크립트는 콜렉선, 리스트, 시퀀스 등의 집합 타입에 간단하게 접근할 수 있는 구문이다.별도의 메소드 구현 없이 해당 집합 타입의 값을 할당 및 접근 할 수 있다.뭐랄까... 사용을 잘하면 좋을 것 같은데, 막상 해당 구문을 사용해본 기억은 없는 것 같다.내용으로라
클래스와 구조체의 일반적인 목적은 유연성있게 코드를 조직화 하기 위해 필요.OOP를 위한 필수 요소.값을 저장하는 Properties 정의기능을 제공하기 위한 methods 정의Collection Type에 접근하기 위한 subscript 정의초기 상태를 정의하기 위한
초기화는 클래스, 구조체, 열거형 인스턴스를 사용 준비하는 단계로 각 프로퍼티의 초기 값을 설정한다.이전에는 단순히 선언과 함께 초기화를 해주면서 init 코드를 보면 좀 두려움이 있었던 것 같은데,규칙이나 순서가 몇가지 있다는 것을 이해하는 좋은 시간이었다.프로퍼티
initialization이 초기화 전에 실행이 되었다면 deinitialization은 메모리에서 해제 되기 전에 실행이 된다.보통은 View 코드를 다루면 LifeCycle 코드에 맞춰 진행하면서 잘 사용하지 않게 되는 듯 한다.ex) ViewWillDeisappe
익스텐션을 이용해 기존 이미 정의된 클래스, 구조체, 열거형, 프로토콜 타입에 기능을 추가할 수 있다.Computed PropertyMethodInitializerSubscriptProtocol 따르도록중첩 타입\#댓글로 남겨주시면 더 좋은 게시글로 수정하도록 하겠습니
관련된 값을 공통의 type으로 선언해 안전성을 다룰 수 있도록 한다.또 지정된 값들이라면 Swift에서는 Class처럼 Protocol 등을 따를 수 있어 코드 가독성 측면이나 관리하는 측면에 있어서 상당히 장점이 있다.Switch 문에 매칭해 안전하게 사용가능각 열
플레이스 홀더인 임의의 타입을 선언해 사용가능element간에 상관관계가 있는 경우 이름 파라미터아닐경우 T, U, V 같은 대문자 파라미터를 관행적으로 사용함수외에서 class나 struct 등의 타입에서도 사용 가능지정하는 제네릭 타입이 특정 클래스를 상속 또는 프
Swift에서는 대부분의 경우에는 인스턴스의 할당과 해제를 자동적으로 처리하게 되어 개발자가 신경 쓸 필요가 없다고 문서에 쓰여져 있다.신경을 쓰지 않아도 되는 경우는 아래와 같다.새 인스턴스가 생성 될 때, ARC는 인스턴스를 담는 메모리를 할당한다.그 후 계속해서
이 글을 마지막으로 처음이었던 문법 학습을 마무리한다.사실 나는 외주 개발을 해왔던 입장으로, 또 명확히는 순수 개발자라는 포지션으로 일해본적이 없었던 나에겐 굉장히 특별했던 경험이다.그동에 내가 Swift를 알 수 있었던 이유는 외주 기능을 구현해야하고 해결해야하는