您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>源码下载>通讯/手机编程>

iOS系统中一些常见问题

大小:0.2 MB 人气: 2017-09-25 需要积分:1

  对于通知,大家想必都不陌生,它是一个单例,允许当事件发生时通知一些对象,让我们在低程度耦合的情况下,来达到通信的目的。

  通知的优势:

  1.不需要编写太多代码,实现比较简单

  2.对于一个发出的通知,可以多个对象作出反应,即是说通知是一对多的形式

  通知的缺点:

  1.在编译期不会检查通知是否能够被观察者正确处理

  2.在释放注册的对象时,需要在通知中心取消注册

  3.在调试应用时,难以跟踪程序

  4.发出通知后,不能够从观察者那里获取任何反馈信息

  通知的基本实现:

  - (void)viewDidLoad {

  [super viewDidLoad];

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

  NSLog(@“注册通知 - %@”,[NSThread currentThread]);

  }

  - (void)touchesBegan:(NSSet《UITouch *》 *)touches withEvent:(UIEvent *)event {

  [[NSNotificationCenter defaultCenter] postNotificationName:@“test” object:nil];

  NSLog(@“发送通知完成 - %@”,[NSThread currentThread]);

  }

  - (void)test {

  NSLog(@“接收到通知 - %@”,[NSThread currentThread]);

  sleep(3);

  }

  打印结果:

  2017-06-13 16:53:01.040 通知的基本使用[24531:3283934] 注册通知 - 《NSThread: 0x600000079c80》{number = 1, name = main}

  2017-06-13 16:53:10.334 通知的基本使用[24531:3283934] 接收到通知 - 《NSThread: 0x600000079c80》{number = 1, name = main}

  2017-06-13 16:53:13.335 通知的基本使用[24531:3283934] 发送通知完成 - 《NSThread: 0x600000079c80》{number = 1, name = main}

  注意打印结果:在test方法执行完毕之后,才会打印发送完成的log。

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!