gpt4 book ai didi

cocoa - NSPredicateEditor 和关系

转载 作者:行者123 更新时间:2023-12-03 16:48:32 34 4
gpt4 key购买 nike

我已经看到,在具有关系的查询中工作的每个谓词都在开头包含单词“ANY”或“ALL”(即:ANY tags.name LIKE[c]“car”),事实是,如果我删除它(即:tags.name LIKE[c]“car”),结果是错误的,或者我收到类似这样的消息:无法对对象进行正则表达式匹配。

由于我使用的是 NSPredicateEditor,它们不是启动我的查询的任何或全部,因此它总是失败。返回的谓词始终与第二个示例类似(没有 ANY 或 ALL)。

我是否必须子类化 NSPredicateRowTemplateEditor 才能在谓词中添加自己的 ANY 或 ALL,还是另一种方式?

日期也是如此...我的日期以这种格式保存:YYYY-MM-DD HH:mm:ss,但是 NSPredicateEditor 使用 DD/MM/YYYY,所以每次我尝试日期比较时,它不起作用。为了更改日期格式,我是否还必须子类化 RowEditor?

谢谢。

最佳答案

给你:

class RowTemplateRelationshipAny: NSPredicateEditorRowTemplate {



override func predicate(withSubpredicates subpredicates: [NSPredicate]?) -> NSPredicate{

let predicate: NSComparisonPredicate = super.predicate(withSubpredicates: subpredicates) as! NSComparisonPredicate

let newPredicate = NSComparisonPredicate(leftExpression: predicate.leftExpression, rightExpression: predicate.rightExpression, modifier: .any, type: predicate.predicateOperatorType, options: predicate.options)

return newPredicate
}

}

class RowTemplateRelationshipAll: NSPredicateEditorRowTemplate {


override func predicate(withSubpredicates subpredicates: [NSPredicate]?) -> NSPredicate{

let predicate: NSComparisonPredicate = super.predicate(withSubpredicates: subpredicates) as! NSComparisonPredicate

let newPredicate = NSComparisonPredicate(leftExpression: predicate.leftExpression, rightExpression: predicate.rightExpression, modifier: .all, type: predicate.predicateOperatorType, options: predicate.options)

return newPredicate
}

}

只需将 IB 中的行模板类更改为 RowTemplateRelationshipAny 或 RowTemplateRelationshipAll。

关于cocoa - NSPredicateEditor 和关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1415033/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com