layout: post
title: "May 06, 2021, TIL (Today I Learned) - Scene Delegate & App Delegate"
summary: "iOS 커리어 스타터 캠프 2기"
author: inwoodev
date: '2021-05-06 22:35:23 +0530'
category: ['Swift_iOS', 'Protoocol', 'TIL']
thumbnail: /assets/img/posts/light-bulbs.jpg
keywords: ios, swift, protocol, app delegate, scene delegate
permalink: /blog/TIL(Today I Learned)/39
usemathjax: true
예)
application: willEnterForeGround
→ scene: willEnterForeground
application:willEnterForeground
→scene:willEnterForeground
application:didEnterBackground
→scene:didEnterBackground
application:willResignActive
→scene:willResignActive
application:didBecomeActive
→ scene:didBecomeActive
scene
이 시스템으로 부터 connection notification을 받기 전까지는 이 상태를 유지한다. 따라서 메모리를 점유하고 있고, 실행 중인 상태라고 할 수 있다.App
이 실행되지 않았거나, 실행이 되었었지만 시스템에 의해서 종료된 상태이다. 따라서 메모리에도 없고, 프로세스의 관점에서도 아무 것도 실행되지 않는다.App
이나 scene
이 백그라운드에 있고 아무것도 실행되지 않는 즉, 프로세스 대기 상태이다. 따라서 메모리는 점유하지만 대기중인 상태라고 할 수 있다.https://www.howtogeek.com/441373/how-to-use-multiple-windows-of-an-app-on-your-ipad/
https://zeddios.tistory.com/811
https://velog.io/@dev-lena/iOS-AppDelegate%EC%99%80-SceneDelegate
https://usinuniverse.bitbucket.io/blog/scenedelegatepart1.html
http://monibu1548.github.io/2018/08/28/appdelegate/
궁금증 1: waitUntilAllOperations
func serveClient(_ data: HeadBankTask) {
let semaphore = DispatchSemaphore(value: 1)
bankWindow.maxConcurrentOperationCount = 1
let headBankTask = HeadBankTask()
headBankTask.waitingNumber = data.waitingNumber
headBankTask.creditRate = data.creditRate
headBankTask.workType = data.workType
semaphore.wait()
bankWindow.addOperation(headBankTask)
semaphore.signal()
// 밑에 중 무엇을 써야 할까
headBankTask.waitUntilFinished()
bankWindow.waitUntilAllOperationsAreFinished()
}