DMAutoInvalidation 类提供了将观察者对象附加到拥有者对象的行为。当拥有者对象即将分配时,向观察者对象发送 -invalidate
。
此库包含了对 NSNotification、键值观察、Core Data 管理对象(观察 NSManagedObjectContextObjectsDidChangeNotification
并检查观察的管理对象的属性或关系是否已更改)和 FSEvents(仅限 Mac 桌面)的预构建观察者。
其目的是将观察者注册建模为对象,每个对象都有一个关联的块。这消除了拥有者对象需要将调用代码派遣到所需代码的需要(如果观察总是通过单个回调进行,例如键值观察),并且消除了手动取消注册通知的需要。因此,不再存在忘记取消注册通知的可能性(以及随之而来的崩溃或不良行为)。
pod 'DMAutoInvalidation'
Jonathon Mah 和 Wil Shipley