测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2015年4月 |
由 Nevyn Bengtsson,Nevyn Bengtsson 维护。
由 Joachim Bengtsson [email protected]
在我努力编写尽可能简洁、简短和易于阅读的代码的过程中,我编写了一些工具来帮助自己。 这些工具有在我的博客上进行了详细描述,但简而言之
为创建您的标准容器和 "POD" 对象(NSNumber、NSString 等)定义宏。我总是将此类文件在项目之间复制粘贴,但这个特定版本受到了杰出的 Jens Alfke 的 CollectionUtils 的极大启发,并增加了一些 ARC 修复和修正。未被人歌颂的英雄:$castIf,$notNull。
在适当的点进行 KVO 观察和注销。您有一个这个概念,但没有代表这个概念的对象。这太糟糕了。SPKVONotificationCenter 为您提供了一个可以像其他对象一样管理的表示 KVO 观察的概念对象;世界又是一个美好的地方了。
在此基础上,SPDepends 尝试使用魔法,让您可以对两个不同对象上的三个不同的 KVC 密钥路径进行订阅,并在任何变动时获得回调,这一切在一行或两行代码中完成
$depends(@"alarm", lock, @"locked", sensor, @"adjacentPeople", @"isOn", self, @"isOn", ^{
if(lock.locked && sensor.adjacentPeople.count > 0 && sensor.isOn && selff.isOn)
[selff triggerAlarm];
})
我发现这真正展现了 KVO 的强大之处,这是只有 Bindings 以前做到过的。