객체지향 프로그래밍에서 객체간 메시지를 주고 받는 상황을 비일비재하게 발생하게 됩니다. 객체간의 연관 관계가 존재한다면 단지 객체의 메소드를 호출하는 것만으로 메시지를 전달이 가능합니다. 하지만 객체간 연관 관계가 존재하지 않는다면 메시지를 존재하기 복잡해집니다. 이를 해결하기위해 제공하는 방법 중에 한 가지를 소개하겠습니다. 바로 Notification입니다.
메시지를 송신할 객체는 NSNotificationCenter를 통하여 Notification을 송신하기 위한 객체를 받습니다. NSNotificationCenter의 [postNotificationName: object: userInfo:]를 통하여 Notification을 보내면 됩니다. 그러면 메시지를 수신할 객체는 어떻게 수신해야할까요?
수신할 객체는 Observer를 등록해야 합니다. 먼저 Notification을 수신하기 위해서 송실할 때처럼 NSNotificationCenter를 받습니다. 이후, [addObserver: selector: name: object:]를 이용하여 Observer를 등록합니다. NSNotificationCenter는 NotificationName이 일치하는 객체들에게 Notification을 발생시킵니다. Notification을 수신한 각 객체들은 등록되어 있던 selector를 호출하여 상태의 변화를 update시킵니다.
'Programming > Mac & iOS' 카테고리의 다른 글
[Swift] Swift Study 2주차 요약 (Closure, Collection, Property, Initialization, Observer ... etc) (0) | 2014.08.18 |
---|---|
[Swift] Swift Study 1주차 요약 (Alias, Tuple, Optional, Range operator ... etc) (0) | 2014.08.16 |
[iOS] 멀티코어 개발자를 위한 애플의 선물 GCD – Grand Central Dispatch (0) | 2014.02.01 |
[Objective C] iOS에서 진동 구현 (0) | 2013.05.20 |
[Objective C] Thread 사용하기 (0) | 2013.05.20 |