WFNotificationCenter 0.1

WFNotificationCenter 0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2015年4月

Conrad Kramer维护。



  • Conrad Kramer

WFDistributedNotificationCenter是用于在您的应用和扩展之间进行通信的通知中心。

特性

  • 可以在同一应用组中的任何进程中工作
  • NSNotificationCenter的API兼容
  • 支持带丰富userInfo字典的通知
  • 优雅地处理进程挂起(并在恢复时提供通知)

使用方法

WFDistributedNotificationCenter *center = [[WFDistributedNotificationCenter alloc] initWithSecurityApplicationGroupIdentifier:@"group.test"];

[center postNotificationName:@"UpdatedStuff" object:nil userInfo:@{@"ChangedIds": @[@3,@4,@10]}];

安装

手动

WFDistributedNotificationCenter.hWFDistributedNotificationCenter.m添加到您的项目中。

架构

分布式通知的传统模式是客户端-服务器,其中应用是客户端,一个守护程序(如distnotednotifyd等)作为服务器。服务器从其客户端接收通知并相应地分发

这种模式在iOS上不可行。没有支持发布丰富通知的守护程序,您也不能创建自己的。在WFDistributedNotificationCenter中,连接是去中心化的。当应用想要监听通知时,它们创建一个本地的Mach服务器并更新一个共享注册表,其中包含Mach端口名称。发布通知的客户端读取此注册表并将通知发送到适当的应用进程。这种通信是通过公共的CFMessagePort API进行的,共享注册表目前存储在应用组容器中。

注意

  • 它目前不打算用于两个独立的应用之间,而仅用于一个应用和它的扩展(它不是为运行时跨版本兼容性设计的)
  • 它允许在userInfo字典中发送任何遵循NSSecureCoding的对象,前提是观察者指定了allowedClasses中的类
  • 测试覆盖率不完整,但正在改进

许可证

WFNotificationCenter可在MIT许可证下获得。有关更多信息,请参阅LICENSE文件。