본문 바로가기

🍎 iOS/DevNote17

[Swift] 옵셔널(Optional) 개념 정리 // 옵셔널 체이닝 개념이 일부 잘못 작성되어 5월 24일 부 수정되었습니다. 프로젝트 중 ?, ! , nil 또는 아래와 같은 여러 에러들로 처음 옵셔널을 접했었다. 당시에는 이 정체모를 것이 에러를 발생시키는 원흉이라 생각했었는데, 지금은 따로 막 찾아보지 않아도 이렇게 정리할 수 있게 되었다. 옵셔널에 관련 에러메세지 1. Provide a default value to avoid this warning 2. Force-unwrap the value to avoid this warning 3. Explicitly cast to 'Any' with 'as Any' to silence this warning 4. The process has been left at the point where it wa.. 2023. 5. 21.
[iOS] Delegate 패턴을 알아보자 처음 Delegate패턴을 접했을 때에는 정말,, 이게 뭔 소릴까?라는 생각을 많이 했던 것 같다. 나중에 알고보니 Delegate는 사용한 지도 모르고 사용하고 있었던 경우가 많았다. Coordinator 패턴을 사용하면서도 Delegate를 정말 많이 사용하게 될 수밖에 없었는데, 그래서 Delegate에 대해서도 정리하면 좋겠다는 생각이 들어 이렇게 작성하게 되었다. Delegate 의미 Delegate는 사전적 의미에서 알다시피, 대리자이고, 인스턴스가 할 일을 다른 인스턴스가 해주는 것을 말한다. 좀 더 쉽게 말해 "내가 할 일을 남이 해준다."라고 이해하면 좋을 것 같다. 실생활 예제 예를 들어, 엄마가 김치찌개를 끓이기 위해, 어린 아들에게 두부 1모 심부름을 시킨다고 가정해보자. 어린 아들.. 2023. 3. 30.
[iOS] Coordinator Pattern을 사용해보자 Coordinator 패턴을 이해하기 위한 선행학습 Delegate Pattern (내가 할 일 다른 녀석이 대신해줌! -> ViewController가 할 일(화면전환)을 Coordinator가 해줘야 한다.) Delegate 참고자료: [iOS] Delegate 패턴을 알아보자 시작하기에 앞서, Coordinator가 왜 생겼는지 알아보자. ViewController가 너무 많은 역할을 담당하고 있다. ViewController에서 화면전환의 역할을 덜어주고 싶다. 화면전환 역할을 분리하자. ( = Coordinator ) Coordinator 패턴은 왜 사용할까? Coordinator는 Khanlou라는 분이 만든 패턴이다. Khanlou가 말하길, ViewController가 아래와 같이 너무 많.. 2023. 3. 23.
[iOS] UI는 왜 MainThread에서만 동작할까? 궁금증이 발생한 이유 DispatchQueue를 통해 처음으로 Concurrency(동시성) 작업을 했을 때, 맞닥뜨렸던 궁금증이다. 당시 의문은, 왜 global은 안 되고, main은 되는데!! 였다. 결론은 질문처럼, UI는 MainThread에서만 처리되어야 한다는 것이고, 알아본 과정을 아래 정리했다. 먼저, UIKit은 Thread-safe하지 않다는 것으로 시작한다. Thread-safe하다는 것은, Multi-Thread Programming에서 shared resource에 여러 쓰레드가 동시에 접근해도, 프로그램 실행에 문제가 발생하지 않는다는 것을 말하는데, Multi-Thread를 지원하는 iOS가 Thread-safe하지 않다? 그럼 문제가 생길 여지가 있다는 얘기가 아닌가..? .. 2023. 2. 26.