我意识到我可以用一个NSDateAttributeType的rightExpressionType构建一个nspredicateeditorRowTemplate,但是我想要构建的谓词需要比它更先进.
例如,我需要基本的比较,如:
> dateKeypath<一个约会
> dateKeypath< = aDate
> dateKeypath = aDate
> dateKeypath!= aDate
> dateKeypath>一个约会
> dateKeypath> = aDate
这些基本比较很容易实现,我有这些工作.但是,我还需要进行比较,例如:
> dateKeypath isInTheLast n天(或周,月,年)
> dateKeypath isnotinTheLast n天(或周,年)
> aDate和anotherDate之间的dateKeypath
我怎样才能实现这些比较?我知道我需要创建一个自定义的nspredicateeditorRowTemplate,但我还没有找到任何关于如何实现这样的清晰文档.
编辑
奖励积分也可用于知道如何使这些比较成为完整的日期 – 时间(年 – 月 – 日 – 时 – 分 – 秒)比较(因为NSDateAttributeType仅具有年 – 月 – 日的粒度).
我实际上描述了3个谓词编辑器行模板,而不是一个.这三个模板是:
> dateKeyPath [< ;,< =,=,>,> =,!=] [NSDatePicker]
> dateKeyPath [inTheLast,notinTheLast] [NSTextFIEld] [NSPopUpbutton]
> dateKeyPath [between] [NSDatePicker]“和”[NSDatePicker]
如果您构建这三个谓词编辑器行模板并将它们提供给predicateEditor,编辑器将意识到它们都使用相同的dateKeyPath,然后显示然后将所有 *** 作符压缩到一个d出按钮中.然后,它将根据选择的运算符将运算符右侧的实际视图切换出来.
编辑
对于奖励积分:您可以通过覆盖templateVIEws方法,从super检索templateVIEws,以及在相应的选择器上设置datePickerElements来修改日期选择器的精度.
编辑2010年11月24日
对于再次遇到此问题的人,我写了一些关于创建自定义nspredicateeditorRowTemplates的博客文章:
> Creating a simple NSPredicateEditorRowTemplate
> Creating an advanced NSPredicateEditorRowTemplate
(这个显示了如何进行inTheLast和inNext行模板)
以上是内存溢出为你收集整理的objective-c – NSPredicateEditorRowTemplate用于日期比较全部内容,希望文章能够帮你解决objective-c – NSPredicateEditorRowTemplate用于日期比较所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)