线程

iOS 通知Notification

2016-05-12  本文已影响89人  行者无疆漫步云端

//  ViewController.m

//  通知的使用

//

//  Created by yunhuihuang on 16/5/12.

//  Copyright © 2016年 yhhuang. All rights reserved.

//

/*

通知实现

通知的同步,他的响应者之间同步

通知的异步如何实现,异步需要使用同步队列,在这个程序中是同步的

*/

#import "ViewController.h"

@interface ViewController (){

NSNotificationCenter *center;

NSNotification *notication1;

NSNotification *notication2;

NSNotificationQueue *queue;

NSNotificationQueue *queue1;

}

@end

@implementation ViewController

- (IBAction)btnNoticationOne:(id)sender {

[center postNotificationName:@"test1" object:nil];

NSLog(@"test1 finish");

}

- (IBAction)btnNoticationTwo:(id)sender {

[center postNotificationName:notication1 object:nil];

NSLog(@"test1 finish");

[center postNotificationName:notication2 object:nil];

NSLog(@"test2 and test1 finish");

// 将通知添加到队列中异步执行

}

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//初始化通知中心

center = [NSNotificationCenter defaultCenter];

//添加通知名字

notication1 = [NSNotification notificationWithName:@"test1" object:nil];

notication2 =[NSNotification notificationWithName:@"test2" object:nil];

//添加多个通知队列

queue = [NSNotificationQueue defaultQueue];

queue1 = [NSNotificationQueue defaultQueue];

[queue enqueueNotification:notication1 postingStyle:2];

[queue1 enqueueNotification:notication2 postingStyle:2];

//添加通知notication1的观察者

[center addObserver:self selector:@selector(second) name:notication1 object:nil];

[center addObserver:self selector:@selector(first) name:notication1 object:nil];

//添加通知notication2的观察者

[center addObserver:self selector:@selector(third) name:notication2 object:nil];

}

-(void)first{

NSLog(@"first");

}

-(void)second{

NSLog(@"second");

//sleep(30);

}

-(void)third{

NSLog(@"third");

}

-(void)viewWillAppear:(BOOL)animated{

[super viewWillAppear:animated];

[center removeObserver:self];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

上一篇 下一篇

猜你喜欢

热点阅读