목록ios (22)
study record

ViewController의 생명주기 1. func viewDidLoad() 뷰 계층이 메모리에 로드된 직후 호출되는 메소드. 메모리에 처음 로딩될 때 한 번만 호출되는 메소드로 메모리 경고로 뷰가 사라지지 않는 이상 다시 호출되지 않는다. 리소스 초기화 및 초기 화면 구성하기에 좋다. 2. func viewWillAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되고, 화면에 표시되기 직전에 호출되는 메소드. 다른 뷰로 이동했다가 되돌아오면 다시 호출된다. 화면이 나타날 때마다 수행해야 하는 작업을 구현하면 좋다. 3. func viewDidAppear(_ animated: Bool) 뷰가 뷰 계층에 추가되어 화면에 표시되고 난 후 호출되는 메소드. 뷰를 나타내는 것과 관련된 추가 작업을..

dequeueReusableCell func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell 파라미터로 2개를 받고, UITableViewCell을 반환한다. 지정된 재사용 식별자에 대한 재사용 가능한 테이블뷰 셀 객체를 반환하고 이를 테이블에 추가한다. identifier는 재사용할 객체를 나타내는 문자열로, 재사용할 객체를 나타내주는 것이다. for는 indexPath를 받는다. 셀의 위치를 지정하는 것이 indexPath로서, 데이터 소스는 셀에 대한 요청이 있을 때 인덱스 경로를 사용하여 셀의 위치를 기반으로 추가구성한다. - 왜 사용하는가? 만 개 이상의 많은 테이블..

NotificationCenter NotificationCenter에 등록된 이벤트가 발생하면 해당 이벤트에 대한 행동을 취한다. 앱 내에서 메세지를 던지면 어디에서나 이 메세지를 받을 수 있게 한다. 보통 백그라운드 작업의 결과, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받을 때 사용한다. 싱글턴 객체 중 하나로, 이벤트들의 발생 여부를 옵저버를 등록한 객체들에게 Notification을 post하는 방식으로 사용한다. Notification Name이라는 Key 값을 통해 보내고 받을 수 있다. NotificationCenter는 notifiaction을 발송하면 NotificationCenter에서 메세지를 전달한 observer의 처리가 완료될 때까지 대기한다(..
GCD란? 멀티코어와 멀티 프로세싱 환경에서 최적화된 프로그래밍을 할 수 있도록 애플이 개발한 기술. 언제 GCD를 사용하게 되는가? 이벤트들을 비동기적으로 처리하지 않으면 메인 스레드에서 데이터를 가져오고 기다렸다가 UI를 업데이트하며 지연이 발생할 수 있다. 데이터베이스에서 데이터를 한번에 지연없이 가져올 수 없는 경우가 발생하기 때문이다. 이렇게 되면 데이터를 가져올 때까지 UI update도 늦어지게 된다. 이러한 경우를 해결하기 위해 GCD를 사용하게 된다. 뿐만 아니라 네트워킹, 이미지 프로세싱 등 많은 작업을 메인 스레드에서 모두 진행하게 되면 User Interface의 대응이 느려지거나 중지가 되기 때문이다. GCD는 비동기 Queue(Dispatch Queue)를 생성하고, 데이터를 G..