목록iOS (42)
study record
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cbFmT5/btrxc2GOPpL/ky5xKGjSNenMXZiaf3Qny0/img.png)
앱 사용시 발생하는 다양한 상황에 적절하게 대응해야 하기때문에 앱 생명주기를 이해하는 것은 중요하다. 앱 실행 main 함수 실행 main 함수가 UIApplicationMain 함수 호출 (App 실행 관리의 중점) UIApplicationMain 함수는 앱의 본체에 해당하는 객체인 UIApplication 객체 생성 싱글톤 객체로 Event Loop에서 발생하는 여러 이벤트들을 감지하고, Delegate에 전달하는 역할을 한다. 예시로 앱이 백그라운드로 갈 때, 메모리 부족 경고를 할 때 등의 상황들을 감지하여 Delegate에 전달한다. @UIApplicationMain 어노테이션이 있는 클래스를 찾아 AppDelegate 객체, SceneDelegate 객체 생성 Scene은 디바이스에서 실행되고..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/KMH84/btrw2NV6gFX/KqkcUEXerio4gQs2ZWOnmk/img.png)
ViewController의 생명주기 1. func viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메소드. 메모리에 처음 로딩될 때 한 번만 호출되는 메소드로 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않는다. 리소스 초기화 및 초기 화면 구성하기에 좋다. 2. func viewWillAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되고, 화면에 표시되기 직전에 호출되는 메소드. 다른 뷰로 이동했다가 되돌아오면 다시 호출된다. 화면이 나타날 때마다 수행해야 하는 작업을 구현하면 좋다. 3. func viewDidAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되어 화면에 표시되고 난 후 호출되는 메소드. 뷰를 나타내는 것과 관련된 추가 작업을..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nN7B7/btrwgjHD9W0/HV7RLXqCtQB2x210WdBlZ0/img.png)
dequeueReusableCell func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell 파라미터로 2개를 받고, UITableViewCell을 반환한다. 지정된 재사용 식별자에 대한 재사용 가능한 테이블뷰 셀 객체를 반환하고 이를 테이블에 추가한다. identifier는 재사용할 객체를 나타내는 문자열로, 재사용할 객체를 나타내주는 것이다. for는 indexPath를 받는다. 셀의 위치를 지정하는 것이 indexPath로서, 데이터 소스는 셀에 대한 요청이 있을 때 인덱스 경로를 사용하여 셀의 위치를 기반으로 추가구성한다. - 왜 사용하는가? 만 개 이상의 많은 테이블..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bitk2j/btrv8caT7mj/6ltZ5ebz6yR8XLUCpPRJTk/img.png)
NotificationCenter NotificationCenter에 등록된 이벤트가 발생하면 해당 이벤트에 대한 행동을 취한다. 앱 내에서 메세지를 던지면 어디에서나 이 메세지를 받을 수 있게 한다. 보통 백그라운드 작업의 결과, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받을 때 사용한다. 싱글턴 객체 중 하나로, 이벤트들의 발생 여부를 옵저버를 등록한 객체들에게 Notification을 post하는 방식으로 사용한다. Notification Name이라는 Key 값을 통해 보내고 받을 수 있다. NotificationCenter는 notifiaction을 발송하면 NotificationCenter에서 메세지를 전달한 observer의 처리가 완료될 때까지 대기한다(..