iphone消息通信机制NSNotificationCenter

来源:互联网 发布:caliber中文软件 编辑:程序博客网 时间:2024/05/19 01:08
 

NSNotificationCenter是专门供程序中不同类间的消息通信而设置的,使用起来极为方便,

长话短说。

设置通知,就是说要在什么地方(哪个类)接受通知,一般在初始化中做。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test:) name:@" test" object:nil]; 

我仅对以上参数做以说明:

addObserver 这个是观察者,就是说 在什么地方接收通知;

 selector 这个是收到通知后,调用何种方法;

 name: 这个是通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。

发送通知,就是说此时要调用观察者处的方法。

[[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:searchFriendArray];

我仅对以上参数做以说明:

postNotificationName:通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。

object:传递的参数

发送通知时,默认调用test方法。

- (voidtest:(NSNotification*) notification

{

searchFriendArrary = [notification object];//通过这个获取到传递的对象

=========================================================

例::

=========================================================

@implementation chuanzhenAppDelegate

-(void) onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{

    //根据接收到的不同,来发送不同的消息。此处发送Login
    [[NSNotificationCenter defaultCenter]postNotificationName:@"Login" object:self];

}

另一BeforeRootViewController.m里。

- (void)viewDidLoad {

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(DidLogin) name:@"Login" object:nil];

}

-(IBAction) LoginClick

..............

}