iOS 개발/Swift

    [Swift] appDelegate 참조 안전하게 하기

    [Swift] appDelegate 참조 안전하게 하기

    우리는 종종 App delegate에서 선언된 instance들을 사용해야 할 때가 있다. 보통은 다음과 같이 강제추출을 사용하게 된다. UIApplication.shared.delegate as! AppDelegate 하지만, 우리의 두뇌에서 괜찮다고 외쳐도 강제추출을 쓰는 것은 좋지 않다. (사바사 상바상 이라고는 하지만, 멘토님께 쓰지 않는 습관을 들이는게 좋다고 배웠다.) 설명은 다음의 persistentContainer를 가져오는 예시를 통해서 하겠다. App Delegate 에는 persistentContainer가 다음과 같이 선언되어 있을 것이다. import UIKit import CoreData @main class AppDelegate: UIResponder, UIApplication..

    [Swift] lazy 변수란? - 애플개발자 문서가 수정됐다!

    [Swift] lazy 변수란? - 애플개발자 문서가 수정됐다!

    우리는 종종 변수 앞에 lazy가 붙는 경우를 볼 수 있다. 나 또한 lazy 변수를 몇번 마주쳤지만, 다른 부분에 정신없는 와중이어서 대충 "메모리를 필요할 때만 쓰게 해주는 역할이다" 정도로만 이해하고 지났쳤지만, 이번에 Core Data를 공부하던 중, lazy var persistContainer 라는 변수를 보고, lazy가 무엇인지 공부를 시작했다. 애플 공식 문서에서 lazy 는 다음과 같이 설명되어 있는데 Apple Developer Documentation developer.apple.com A sequence containing the same elements as this sequence, but on which some operations, such as map and filter,..

    [Swift] 프로토콜(Protocol)을 가장 기초부터

    [Swift] 프로토콜(Protocol)을 가장 기초부터

    iOS/MacOS 앱을 만들다 보면, 객체 지향형 언어를 많이 다루어 본 사람들도 처음 보는 것이 있다. 바로 Protocol 과 Delegate 이다. 나의 경우는 직전에 WKWebview를 사용하는 Hybrid 앱 개발을 할 때 firebase FCM을 이용하면서, 직접 정의한 push 알림을 구현하기 위해서 AppDelegate.swift를 심도 있게 다루어야 했지만, Delegate가 무엇인지 이해하지 못한채로 작업을 시작했었기 때문에 정말 오래 걸렸던 경험이 있다. Delegate를 이용하기 위해서는 먼저 Protocol을 이해해야 한다. 먼저 Protocol을 설명한 후, Delegate는 다음 장에서 설명하도록 하겠다. 1. 그럼 Protocol이 뭐야? 구글링을 해보면 많은 사람들이 Pro..