美文网首页
iOS-Notificatioin

iOS-Notificatioin

作者: 小猫仔 | 来源:发表于2017-10-16 21:16 被阅读0次

           通知是iOS的一种信息传递的设计模式,和delegate 一样,可以传递信息。从来源说:应该分为3中,local remote 、custom。也就是本地通知、远程通知、和自定义通知。这是个人理解,可能和专业术语不一致。

    本地通知,也就是我们自己显示通知的UI样式,还能自己修改。本地的闹钟提醒可以算一种最常用的例子。

    远程通知,就是通过第三方或者apple的服务器,发出的通知。

    自定义通知,就是我们开发者自己注册,并自己发送的通知。NSNotificationcer 类,处理这些。

    本文不讲这些notifications 是怎么使用的,

           通知中心的种类有两种,NSNotificationCenter 类,管理一个单一的进程的通知。就是在一个app内部管理通知事务的。NSDistributedNotificatiioncenter,对同一个机器上不同app之间的通信OSX上使用。

    NSNotificationCenter 。可以异步方式发送通知,使用notifictionqune 通知队列。多线程应用中,通知总是在发布通知的线程中传递,这可能与注册的观察者的线程不同。

    NSNotificationQueue 可以声明一个通知队列,可以异步的发送通知。

    NSNotificationQueue *notificationQueue = [NSNotificationQueue defaultQueue];//默认的通知队列,当然可以再创造一个。

    NSNotification *notification = [[NSNotification alloc] initWithName:@"Eezy" object:self userInfo:@{@"Status": @"Success"}];

    NSNotificationQueue *notificationQueue = [NSNotificationQueue defaultQueue];

    NSLog(@"%@",notificationQueue);

    [notificationQueue enqueueNotification:notification postingStyle:NSPostASAP];//生成一个通知队列,并强调了发送方式NSPostASAP。

    [notificationQueue enqueueNotification:notification postingStyle:NSPostASAP coalesceMask:NSNotificationNoCoalescing forModes:@[NSRunLoopCommonModes]];//合并发送通知

    //从队列中移除符合匹配条件的通知。

    [notificationQueue dequeueNotificationsMatching:notification coalesceMask:NSNotificationNoCoalescing];

    相关文章

      网友评论

          本文标题:iOS-Notificatioin

          本文链接:https://www.haomeiwen.com/subject/nnpnyxtx.html