
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()
}


