草庐IT

NSPredicate

全部标签

objective-c - NSPredicate 对多对关系的不区分大小写匹配

我正在实现一个搜索字段,用户可以在其中输入一个字符串来过滤View中显示的项目。显示的每个对象都有一个keywords对多的关系,我希望能够根据它们的关键字过滤对象。每个关键字对象都有一个name属性,所以我设置了一个NSPredicate来进行过滤,如下所示:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"keywords.nameCONTAINS%@",self.searchString];这可行,但问题是搜索是区分大小写的,所以如果关键字有一个大写字母,但用户输入全小写,则找不到匹配项。我尝试了以下修改:NSPred

ios - NSPredicate 用于测试 NULL 和空白字符串

我有一个NSArray并且需要过滤掉任何为null或者更确切地说具有''(空字符串)的字符串。我怎么做?我试过这样做:NSPredicate*predicateName=[NSPredicatepredicateWithFormat:@"(name!=nil)"];但这似乎不起作用。或者也许确实如此,但有不同种类的null... 最佳答案 如果你不使用CoreData,你可以这样做:NSPredicate*predicateName=[NSPredicatepredicateWithFormat:@"name.length>0"];

ios - NSArray 和 NSPredicate 使用 NOT IN

我有一个NSArray,我想使用NSPredicate过滤掉某些对象,我希望我可以使用NOTIN,因为我看到我可以轻松地执行IN。所以我有我的数组:self.categoriesList然后我得到我想要删除的值:NSArray*parentIDs=[self.cateoriesListvalueForKeyPath:@"@distinctUnionOfObjects.ParentCategoryID"];这为我提供了我不想显示的类别的ParentCategoryID列表,所以我想我可以使用NSPredicate来删除它们:self.cateoriesList=[self.cateori

objective-c - 使用 NSPredicate 根据 NSDictionary 键过滤 NSArray

我有一个字典数组。我想根据一个键过滤数组。我试过了:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"(SPORT==%@)",@"Football"];NSArray*filteredArray=[datafilteredArrayUsingPredicate:predicate];这不起作用,我没有得到任何结果。我想我做错了什么。如果“SPORT”是ivar,我知道这就是方法。如果是key的话,我想可能会有所不同。但是我找不到一个例子。谢谢更新我在要搜索的字符串周围添加了引号。NSPredicate*predicate=

objective-c - NSPredicate:按 NSDate 属性的日期过滤对象

我有一个带有NSDate属性的核心数据模型。我想按天过滤数据库。我假设解决方案将涉及NSPredicate,但我不确定如何将它们组合在一起。我知道如何使用NSDateComponents和NSCalendar比较两个NSDate的日期,但是如何使用过滤它>NSPredicate?也许我需要在我的NSManagedObject子类上创建一个类别,该类别可以返回仅包含年、月和日的裸日期。然后我可以在NSPredicate中进行比较。这是您的建议,还是有更简单的方法? 最佳答案 给定一个NSDate*startDate和endDate以及

ios - 使用 glob 获取目录中的文件列表

由于某种疯狂的原因,我找不到一种方法来获取给定目录的带有glob的文件列表。我目前遇到以下问题:NSString*bundleRoot=[[NSBundlemainBundle]bundlePath];NSArray*dirContents=[[NSFileManagerdefaultManager]directoryContentsAtPath:bundleRoot];..然后去掉我不想要的东西,这很糟糕。但我真正想要的是能够搜索“foo*.jpg”之类的东西,而不是要求整个目录,但我一直找不到类似的东西。那么你是怎么做到的呢? 最佳答案

ios - 使用 glob 获取目录中的文件列表

由于某种疯狂的原因,我找不到一种方法来获取给定目录的带有glob的文件列表。我目前遇到以下问题:NSString*bundleRoot=[[NSBundlemainBundle]bundlePath];NSArray*dirContents=[[NSFileManagerdefaultManager]directoryContentsAtPath:bundleRoot];..然后去掉我不想要的东西,这很糟糕。但我真正想要的是能够搜索“foo*.jpg”之类的东西,而不是要求整个目录,但我一直找不到类似的东西。那么你是怎么做到的呢? 最佳答案

关于ios:如何将所有相关的自相关对象放在一个tableview中,并为每个关系映射关联section header?

Howtoputallrelatedself-relatedobjectsinatableviewwithassociatedsectionheaderforeachrelationshipmapping?我有一个名为"技能"的实体。Skill具有三种不同类型的关系映射-更容易、更难和相似。我想创建一个包含3个部分的表格视图-对于我碰巧正在查看的特定技能,更容易、更难和类似。我正在尝试确定如何使用NSFetchedResultsController创建一个获取请求,以将所有3项技能合二为一。这是我的尝试12345678910fileprivatelazyvarrelatedSkillsFetc

关于ios:如何将所有相关的自相关对象放在一个tableview中,并为每个关系映射关联section header?

Howtoputallrelatedself-relatedobjectsinatableviewwithassociatedsectionheaderforeachrelationshipmapping?我有一个名为"技能"的实体。Skill具有三种不同类型的关系映射-更容易、更难和相似。我想创建一个包含3个部分的表格视图-对于我碰巧正在查看的特定技能,更容易、更难和类似。我正在尝试确定如何使用NSFetchedResultsController创建一个获取请求,以将所有3项技能合二为一。这是我的尝试12345678910fileprivatelazyvarrelatedSkillsFetc

关于ios:在核心数据中搜索最接近的值

Searchcoredataforclosestvalue目前我们有一个包含多个r、g、b值的数据库,这些值被拆分为自己的属性。例如:123 r=typefloat g=typefloat b=typefloat每个r、g和b属性将有多个值。从外部来源获取浮点数后,我们希望搜索数据库以返回与该浮点数最接近的属性。(例如,对于r,如果我们得到一个199的值,将返回与199最接近的r值)。我知道有一些谓词可以像这样使用:"textCONTAINS%@",但我没有看到任何用于\\'closestvalue\\'的谓词。您必须定义您的术语closest的某个范围。对我来说,最接近的199可能是220,