Swift (3) 썸네일형 리스트형 배열 요소에 안전하게 접근하는 방법(How to access array's element safely) 왜 배열 요소에 접근하는 코드를 작성하다 보면 컴파일 타임에는 배열 요소에 접근하는 코드에 문제가 있는지 육안으로는 확인이 되지 않기 때문에 조건에 따른 분기 코드를 통해 접근하는 예외 처리가 되어 있지 않다면 런타임에 'index out of range'와 함께 앱이 종료되는 상황을 마주할 수 있다. 예를 들면, 다음과 같은 코드가 되겠다. struct Item { let name: String } let items: [Item] = "가나다라마바사".map { itemName in Item(name: "\(itemName)") } let firstName = items[items.count].name 위와 같은 코드는 바로 크래쉬를 발생시키고 앱이 종료될 수도 있다. (테스트 코드를 통해 로직에 대한.. Protocol(1) 사용하는 이유 1. 추상화의 방법 중 하나로 사용 가능 다른 언어(예: 자바)에서 추상화를 위한 방법 중 하나로 Interface라는 것을 구현하고 그것을 implements해서 사용했다면 Swift에서는 추상화를 위한 방법 중 하나로 Protocol을 사용합니다. 2. First Calss Citizen으로서 사용의 편리함 + 부가적인 장점 또한, Swift에서는 First Class Citizen이라고 해서 Protocol을 하나의 타입처럼 사용할 수 있습니다. 이렇게 사용할 수 있는 것은 아래 내용에서도 다루겠지만 Protocol의 편리함을 느끼게 해줍니다. 더보기 First Class Citizen은 아래와 같은 특성을 갖고 있습니다. 1. Property에 저장할 수 있다. 2. Method P.. Generics Combine을 공부하는 중에 Combine을 이해하는데에 있어 저도 정확히 한번 더 공부해서 정리하고 가보면 좋을 것 같아서 Generic에 대한 글을 써보려고 합니다. 개념 애플 문서에서 Generic의 정의를 보면 다음과 같습니다. Generic의 정의를 보면 multiple types에 대해 동작하는 code를 작성하고, 그 types에 대한 특정한 요구사항을 지정한다. 사용하는 이유 Generic은 왜 사용하는 걸까요? 이유는 다음과 같이 애플 문서에 잘 나와있습니다. 눈에 띄는 문구들은 다음과 같네요. to write flexible reusable functions and types that can work with any type avoids duplication the most power.. 이전 1 다음