NSSet 谓词
Predicate with NSSet
我正在尝试根据用户搜索文本过滤来自核心数据的结果,但效果很好。我正在努力制作它,以便有几个关键术语可以返回特定结果。
我有一个 Colour
实体,它与另一个实体 ProjectColour
有 to-many
关系。 ProjectColour
实体有两个字段,我想按 fullLeft
和 partialLeft
搜索。
我想做的是,当我搜索术语 "full" 时,会返回任何具有 ProjectColour
字段 fullLeft > 0
的 Colour
。
partialLeft
和再次或全部相同。
到目前为止,我有这个但我不确定如何使用谓词来检查 NSSet
中的对象
if ( searchedText.count > 0 ) {
if searchedText == "full" {
} else if searchedText == "partial" {
} else if searchedText == "all" {
} else {
fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", searchedText)
}
}
通过以下方法解决了
if ( searchedText.count > 0 ) {
if searchedText.lowercased() == "full" {
fetchRequest.predicate = NSPredicate(format: "ANY projectColours.fullLeft > 0")
} else if searchedText.lowercased() == "partial" {
fetchRequest.predicate = NSPredicate(format: "ANY projectColours.partialLeft > 0")
} else if searchedText.lowercased() == "all" {
fetchRequest.predicate = NSPredicate(format: "ANY projectColours.fullLeft > 0 OR ANY projectColours.partialLeft > 0")
} else {
fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", searchedText)
}
}
我正在尝试根据用户搜索文本过滤来自核心数据的结果,但效果很好。我正在努力制作它,以便有几个关键术语可以返回特定结果。
我有一个 Colour
实体,它与另一个实体 ProjectColour
有 to-many
关系。 ProjectColour
实体有两个字段,我想按 fullLeft
和 partialLeft
搜索。
我想做的是,当我搜索术语 "full" 时,会返回任何具有 ProjectColour
字段 fullLeft > 0
的 Colour
。
partialLeft
和再次或全部相同。
到目前为止,我有这个但我不确定如何使用谓词来检查 NSSet
if ( searchedText.count > 0 ) {
if searchedText == "full" {
} else if searchedText == "partial" {
} else if searchedText == "all" {
} else {
fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", searchedText)
}
}
通过以下方法解决了
if ( searchedText.count > 0 ) {
if searchedText.lowercased() == "full" {
fetchRequest.predicate = NSPredicate(format: "ANY projectColours.fullLeft > 0")
} else if searchedText.lowercased() == "partial" {
fetchRequest.predicate = NSPredicate(format: "ANY projectColours.partialLeft > 0")
} else if searchedText.lowercased() == "all" {
fetchRequest.predicate = NSPredicate(format: "ANY projectColours.fullLeft > 0 OR ANY projectColours.partialLeft > 0")
} else {
fetchRequest.predicate = NSPredicate(format: "name contains[cd] %@", searchedText)
}
}