iOS

    Protocol과 Delegate Pattern을 이용해 Data를 가져와 표시하는 화면 구성하기.

    Protocol과 Delegate Pattern을 이용해 Data를 가져와 표시하는 화면 구성하기.

    (Macbook Air M1 8-256 Monterey 12.5.1 Xcode 13.1) Why? 당근마켓이나 번개장터 같은 App에서 게시물을 작성할 때 보면, 물건의 카테고리를 선택하면 그 전 화면으로 돌아와 선택한 카테고리가 표시되죠. 그래서 이번 포스팅에서는 Data를 전달받아 Button에 표시하는 방법을 구현해보려고 합니다. Stroyboard에서 ViewController를 만들어서 Data를 전달받는 건 알겠는데, 코드로 화면을 만들어서 Data를 어떻게 전달받아서 표시해야할까 고민하다가 이번에 직접 구현해보았습니다. Stroyboard 사용을 최소화하기 위해, 기초적인 부분만 만들고 나머지는 코드로 구현해보려고 합니다. (1) 새로운 프로젝트를 생성해서, 기본 세팅을 시작합니다. Navi..

    App 생명주기(Life Cycle) (2)

    App 생명주기(Life Cycle) (2)

    이전 포스팅에서 계속됩니다. AppDelegate 이러한 생명주기를 control하고 싶다면, AppDelegate.swift 내부 method를 수정해야합니다. 프로젝트 내에서는 AppDelegate.swift 안에서 생명주기가 관리되기 때문입니다. 여기에선 앱 상태에 따라 실행되는 여러가지 Delegate method들을 담아서 실행하고 있습니다. 가장 상단에 @UIApplicationMain을 볼 수 있습니다. (구 @main) @main은 프로그램의 시작점(entry point)을 뜻합니다. (관련 내용 참조) 2번째 상자를 보면 application(_:didFinishLaunchingWithOptions:)를 볼 수 있는데요. app이 active상태로 전환된 뒤에 사용자에게 보여지기 전 호출..

    UserDefaults 사용하기

    UserDefaults 사용하기

    Why? JSON과 인코더와 디코더를 공부하면서 어떤 내용인지는 알겠는데, 데이터를 어떻게 저장하고 받아오는지 알 수가 없었습니다. 그래서 같이 스터디하시는 분들의 코드 도움을 받아 UserDefaults라는 함수로 이 모든과정을 해결한다고 알 수 있었습니다. 조금 더 정확하게 알고 사용하고자 공부하였습니다. UserDefaults란 UserDefaults는 데이터(데이터와 key가 쌍으로 이루어짐)를 저장하는 역할을 하는 함수 라고 생각하시면 될 것 같습니다. (이 때 key는 String입니다.) 대량의 데이터보단, 사용자 기본설정 같은 단일 데이터에 적합하다고 알려져 있습니다. UserDefaults는 기본적으로 메모리상에서 모든 데이터를 관리합니다. 이를 메모리 캐싱(memory caching) ..

    super.viewDidLoad() 꼭 호출해야할까?

    super.viewDidLoad() 꼭 호출해야할까?

    (Macbook Air M1 8-256 Monterey 12.5.1 Xcode 13.1) Why? 새로운 UIViewController file을 생성할 때 보면 언제나 override func viewDidLoad() 하단에 super 키워드를 단 super.viewDidLoad()가 생성됩니다. 저번 포스팅에서 View생명주기를 공부하면서 viewDidLoad()가 무엇인지 대략적으로 알 수 있었는데요. 그래서 그런지 하위에 항상 들어가있는 super 키워드가 항상 궁금했었습니다. "반드시 넣어줘야하는 항목인건가?" 하고요. 그래서 꼭 호출해야 할까? stackoverflow에 실제로 이와 동일한 질문이 올라온적이 있더라고요. (관련링크) 정확히 저와 같은 궁금증의 질문이였는데요. 해당 사이트의 답변..