일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 윈도구
- 아이맥
- 설치
- 7932
- Mobile
- mac
- WSDL
- java
- install
- 오브젝티브C
- 퇴사
- 애플
- VISTA
- 링크
- Number
- WebService
- cagr48com
- 형식
- 윈도우즈7
- screen
- 맥
- iPhone
- windows
- Objective-C
- ObjectiveC
- c#
- 아이폰
- 볼링
- 윈도구7
- windows7
Archives
- Today
- Total
A colossal Dreamer: GR鐵塔-天生我材
[아이폰] NSNotificationCenter 의 활용/ model객체에서 controller 객체에 메시지 전달 본문
Development/아이폰
[아이폰] NSNotificationCenter 의 활용/ model객체에서 controller 객체에 메시지 전달
江多林 2011. 2. 8. 20:10
수정(2011-05-31) 여기에 주의사항이 하나 있습니다.
Observer를 등록할 때 object 에 무엇을 지정하는 냐 입니다.
노티는 네임만을 가지고 구분하다보나, 너도 나도 하나의 노티네임을 보고 있으면,
내게 필요없는 노티도 많이 받게 되겠죠..
그것을 피하게 해주는 것이 object 입니다.
보내는 쪽과 받는 쪽이 같은 object를 지정해준 경우에만 노티가 발생토록 하면,
내가 꼭 필요한 노티만 받을 수 있게 되는 것이죠.
받는 쪽에서 nil 이라고 하면, 모든 노티를 수신한다는 의미이고,
보내는 쪽은 아마도 추측입니다만, 모든 옵저버에게 전달하는 것 같습니다.
마치 java의 object.wait() object.notify() 와 유사합니다.
이 둘이 연결이 되고 나니 이제야 노티라는 넘이 보이네요..
이정도는 문서 보면서 확인해줘야 하는데.. 노티를 왜 monitor의 노티와 같다는 생각을 그 때 못 했을까요..? 하여튼.. 주의 하세요. ^^*
//*** 모델 객체의 .h 파일
Observer를 등록할 때 object 에 무엇을 지정하는 냐 입니다.
노티는 네임만을 가지고 구분하다보나, 너도 나도 하나의 노티네임을 보고 있으면,
내게 필요없는 노티도 많이 받게 되겠죠..
그것을 피하게 해주는 것이 object 입니다.
보내는 쪽과 받는 쪽이 같은 object를 지정해준 경우에만 노티가 발생토록 하면,
내가 꼭 필요한 노티만 받을 수 있게 되는 것이죠.
받는 쪽에서 nil 이라고 하면, 모든 노티를 수신한다는 의미이고,
보내는 쪽은 아마도 추측입니다만, 모든 옵저버에게 전달하는 것 같습니다.
마치 java의 object.wait() object.notify() 와 유사합니다.
이 둘이 연결이 되고 나니 이제야 노티라는 넘이 보이네요..
이정도는 문서 보면서 확인해줘야 하는데.. 노티를 왜 monitor의 노티와 같다는 생각을 그 때 못 했을까요..? 하여튼.. 주의 하세요. ^^*
//*** 모델 객체의 .h 파일
extern NSString *EADSessionDataReceivedNotification;
//*** 모델 객체의 .m 파일
#import "EADSessionController.h"
NSString *EADSessionDataReceivedNotification = @"EADSessionDataReceivedNotification";
//*** 모델 객체에서 노티메시지 발송
[[NSNotificationCenter defaultCenter] postNotificationName:EADSessionDataReceivedNotification object:self userInfo:nil];
//*** 컨트롤러 객체의 옵저버 등록 해제 - 노티 수신시에 옵저버 등록시 사용한 SEL 이 호출된다.
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(_sessionDataReceived:)
name:EADSessionDataReceivedNotification
object:nil];
[[NSNotificationCenter defaultCenter]
removeObserver:self
name:EADSessionDataReceivedNotification
object:nil];
'Development > 아이폰' 카테고리의 다른 글
[아이폰:아이콘크기] 아이폰 아이콘/ 디폴트 이미지 크기 정리 (0) | 2011.04.22 |
---|---|
[아이폰:iOS] Info.plist 에서 각종 Bundle 정보 획득하기 (0) | 2011.04.06 |
[아이폰:ad-hoc 배포/설치] ad-hoc 빌드/배포/설치 (0) | 2010.11.22 |
[아이폰:InterfaceBuilder] IB 에서 UI관련 static library 사용하기 (0) | 2010.06.28 |
[아이폰:Objective-C] 코드상으로 화면 캡처 생성법(How to capture a screenshot programmatically) (0) | 2010.06.23 |