5 cocoa objective-c subclassing nspredicate
Cocoa定义了谓词类(NSPredicate,NSExpression等),它"提供了在Cocoa中指定查询的一般方法" 谓词编程.这组课程描述了我需要的东西,但有一点简短:我想要额外的操作员.
NSComparisonPredicate已经处理了14个运算符(NSPredicateOperatorType),但我想添加,例如,时间运算符...或运算符来表示以下内容:
显然,我需要自己实现这些,并且执行此类查询的数据模型必须支持这些运算符.但是,有没有办法实现它并从现有的NSPredicate类中受益?由于运营商被定义为enum,我怀疑我可以在这方面延伸.或者我完全错过了这艘船?!
已经 度过了 一个 很大 的 时间 玩 周围 用 NSPredicate,我不知道这是最大的想法.
从理论上讲,您可以NSPredicate创建新的初始值设定项和属性,然后覆盖该-evaluateWithObject:substitutionVariables:方法以进行自定义比较.
实际上,它可能比那困难得多.
你可以考虑FUNCTION()改用. 我写了一篇博客文章FUNCTION前一段时间,它是如何玩弄NSExpression,因此用NSPredicate.就个人而言,我可能会这样做,因为那时你仍然可以使用+predicateWithFormat:语法来创建NSPredicate.创建子类以添加运算符必然会阻止您使用内置解析器.
| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |