Neph's Blog

「Neph의 iOS 공부일지」

[요약] Preparing Your UI to Run in the Background

개요 앱은 여러 이유로 background 상태로 전환됨 UIKit이 suspend하기 전에 앱은 background 상태로 가게 됨 시스템은 앱을 directly하게 background 상태로 실행할 수 있음 (suspended 상태의 앱을 background로 보내는 것도 가능함) background 상태의 앱은 최소한의 일을 해...

[번역] Preparing Your UI to Run in the Foreground

개요 앱의 UI가 화면에 띄워지는 것을 준비하기 위해 foreground 전환을 사용합니다. foreground로의 상태변환은 일반적으로 유저의 액션에 대한 응답입니다. 예를 들어 유저가 앱의 아이콘을 터치하면 시스템은 앱을 실행하고 foreground 상태로 만듭니다. 앱의 UI 업데이트, 리소스 요청, 유저의 요청을 핸들링하는 서비스의 시작을 위...

[번역] Managing Your App's Life Cycle

이번 글에서는 Managing Your App’s Life Cycle 를 번역해보았습니다. 사실상 글의 정독이 목적이고 중요도가 떨어진다 생각되는 부분은 번역하지 않았으니 정확한 내용은 공식문서를 참조해주세요 개요 앱의 현재 상태는 현재 무엇을 할 수 있고 없는지를 결정하는 요소입니다. foreground 상태의 앱은 유저가 사용중인 앱이므로 시...

AppDelegate란?

이번 글에서는 appDelegate에 어떤 메서드들이 존재하고 어떤 것들을 담당하는지에 대해 다뤄보겠습니다. 다음 글에서 appDelegate과 sceneDelegate이 분리된 이유에 대해 다뤄보도록 하겠습니다. UIApplicationDelegate appDelegate는 앱을 구동할때 공유되는 행위를 관리하는 객체입니다. appDelega...

Swift weak, strong, unowned 정리

제가 Swift에서 weak이란 단어를 처음 본 것은 스토리보드에서 UI를 코드로 끌어왔을때였습니다. 자동으로 weak var 선언이 되는 것을 보며 그 이유가 궁금했었는데 이번글에서는 weak을 사용하는 이유, ARC 등에 대해 다루고자 합니다. ARC란 인스턴스의 수명주기가 끝나는 시점(Reference Count가 0이 되는 시점)에 Swi...

Swift 딕셔너리 값이 존재하는지 확인하는 법

Dictionary에 특정 Key값이 존재하는지 확인하는 법 1 2 3 if myDictionary["key"] != nil { //... } 메서드가 하나쯤 있을법 한데, 특별히 메서드를 지원하지는 않는다. 그냥 키값을 넣었을때 nil이 나오면 값이 없다고 판단할 수 있다. 가끔씩 이상하게 생각이 안나서 글 하나 업로드..

Swift initializer 총정리

이번 글에서는 Swift.org 문서를 바탕으로 Swift에서 사용되는 다양한 initializer의 종류와 그 사용처에 대해 알아보겠습니다. Initializers initialize에 관한 기초적인 설명 파트는 제외하고 눈여겨 볼만한 내용들만 정리해보았습니다. Deinit은 class type의 경우에만 구현할 수 있습니다. 클래스와...

BFS 몇번에 걸쳐 이동했는지 count하는법

BFS 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 func answer() { var dayCount = 0 while true { for _ in 0..<queue.count { guard let next = qu...

Realm 트러블슈팅 (Realm accessed from incorrect thread)

트러블 발생 지점 65번째 줄에서 Realm에 접근하였고 이 줄의 실행까지는 문제가 없는데 66번째 줄부터 시작하는 main thread의 UI 업데이트 작업에서 오류가 발생했다. 이유는 Realm accessed from incorrect thread인데 의문인 것은 이 블록에서는 Realm에 접근하지 않는다는것.. (products라는...

[iOS] query에 띄어쓰기가 있을때 처리하는 방법

보내야 하는 Query에 띄어쓰기가 있는 경우 이를 해석하지 못해 오류가 발생하곤 합니다. 이때는 percentEncodedQuery로 바꿔주어야 합니다. (인터넷 링크를 복사해 붙여넣으면 한글은 영어로, 띄어쓰기는 %로 바뀌는 것을 떠올리면 됩니다.) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 fi...