iOS/Swift

    self 사용(시점)에 관한 고찰

    self 사용(시점)에 관한 고찰

    why? 매주 발표하는 모임에서 'self vs Self' 주제에 대해 발표를 하게 되었습니다. 반드시 해당내용이 아니여도 되고, 관련 내용을 공부해서 자신의 방식대로 발표를 하는 것이기 때문에, 기존의 딱딱한 비교 틀에서 벗어나 self 사용에 대해서 좀 더 깊은 고찰을 해보게되었습니다. vs Self 아주아주 간단히 self와 Self에 대해 비교해보고 넘어가겠습니다. self는 instance를 가르킵니다. ( ex. "aaaabbbb", 19, ...) Self는 Type을 가르킵니다.. (ex. String, Int ...) self의 사용(시점) 간단한 첫번째 예제코드를 살펴봅시다. lazy var btn: UIButton = { let b = UIButton() self.btn.setTitl..

    for - in / forEach 차이점

    for - in / forEach 차이점

    why? 코드로 작업을 하는 도중 문득, for-in과 forEach의 정확한 차이점이 뭔지 궁금해졌습니다. 뭔가.. 정확한 의미 없이 쓰는 느낌(?)이 좀 들어서, 이번 포스팅 기회로 정확하게 알고자 공부하였습니다. 모든 collection을 비교하는 건, 내용이 너무 길어질 것 같아서 비교적 가장 많이 쓰이는 배열(Array)를 대표적인 예시로 설명해보겠습니다. (모든 예제코드는 playground로 작성되었으며, 하단의 주석은 결과값을 나타냅니다.) 1. for - in (Array) 컬렉션(여기선 Array)에 저장된 요소 수만큼 반복되며, 저장된 요소가 루프 상수에 하나씩 들어간다. 끊어서 차근차근 읽어보겠습니다. 컬렉션(=Array)에 / 저장된 요소 수만큼 / 반복 / 되며 저장된 요소가 /..

    do catch문 (+ try)

    do catch문 (+ try)

    why? 최근 API를 다루면서 궁금했던 부분이 do - catch 문이였습니다. 에러처리에 대해 확실하게 짚고 넘어가고자 해당부분에 대해 공부해봤습니다. 간단한 예시를 들어 먼저 사용방법을 익힌 후 추후 깊은 개념에 대해 공부해보겠습니다. do-catch문이란? 에러를 처리하기위한 하나의 문법이라고 생각하시면 됩니다. 한마디로 그냥 '조치방법'이라고 생각하면 편할 것 같습니다. 사용법 do-catch문은 열거형을 사용해서 에러를 정의해야합니다. 예시를 들어보면서 설명해보겠습니다. (1) 열거형 do - catch문이 아닌, 갑자기 왠 열거형?이라고 생각하실 수도 있을 것 같습니다. do - catch문을 사용해서 Error를 처리하고 싶다면, 즉, Error를 미리 방지하고 싶다면, Error에 대한 ..

    instance init / deinit (생성자, 소멸자)

    instance init / deinit (생성자, 소멸자)

    why? 프로젝트를 진행하면서 모델을 구성하는 도중 다음과 같은 문제를 겪게 됬습니다. (1) 일반적으로 model을 구성할 때 class와 struct를 사용할 수 있지만, 대부분 struct를 더 많이 사용한다고 한다. 왜 struct를 class보다 더 많이 쓰고 언제 구분하는걸까? (2) 코드에 적혀있는 init과 비슷한 이름인 deinit은 무슨 역할을 하며, 어떻게 사용하는걸까? (3) Codable, init(snapshot: QueryDocumentSnapshot)는 정확히 어떻게 사용될까? 이 중 init과 deinit의 정확한 내용과 사용방법에 대해서 알아야 class와 struct의 비교 및 사용에 대해 이해할 수 있을 것 같기 때문에 이 부분에 대해 먼저 공부해보고자 합니다. ini..