草庐IT

NSPredicate

全部标签

iOS 11 NSPredicate 搜索 Swift 数组崩溃 - NSUnknownKeyException

我正在使用NSPredicate在Swift中过滤数组。问题是在更新到iOS11(Xcode9/wSwift4)之后,我一直在过滤线上崩溃。这是崩溃日志:Terminatingappduetouncaughtexception'NSUnknownKeyException',reason:>'[valueForUndefinedKey:]:thisclassisnotkey>valuecoding-compliantforthekeyname.'这是我有一个数组的类的示例:finalclassModel:NSObject{letname:Stringinit(name:String){s

ios - Swift NSPredicate 不在

我有一个包含X项的数组,我需要通过uid过滤掉特定的项。我写了以下谓词,我认为它是正确的。我面临的问题是Swift编译器只允许我使用接受argumentArray的初始化器。letuids=["34885a9f0897f8e9","11364aca04e29be0","c25047b10ad2a0d2"]NSPredicate(format:"NOT(uidIN%@)",argumentArray:uids)总是解析为以下内容:NOTuidIN"18bbfd4d3f099297"我知道我在这里遗漏了一些明显的东西。我如何构造一个NSPredicate来将25个项目的数组过滤为22个项目

ios - NSPredicate 按年月日过滤

我使用CoreData来存储我的数据模型对象。每个对象都有NSDate属性。NSDate属性的格式如下:2013-03-1812:50:31+0000我需要创建谓词,仅通过此值2013-03-18立即获取我的对象。 最佳答案 如果您的日期存储为实际日期,那么您应该利用它来发挥自己的优势,而不是摆弄格式。您可以简单地创建一个谓词来检查日期是否在两个日期(带时间)之间。第一个日期是您的日期,时间为00:00:00,第二个日期是在那之后的一天。//Createyourdate(withoutthetime)NSDateComponents

ios - 使用 NSPredicate 过滤数组数组

我有以下情况:NSArray(NSArray(string1,string2,string3,string4,string5,),NSArray(string6,string7,string8,string9,string10,))现在我需要一个谓词来返回包含特定字符串的数组。例如过滤包含string9的​​数组->我应该取回整个第二个数组,因为我需要处理该数组中的其他字符串。有什么想法吗? 最佳答案 只是为了完整性:可以使用predicateWithFormat::NSArray*array=@[@[@"A",@"B",@"C"]

objective-c - NSPredicate 相当于 SQL 的 GROUP BY

为了简化:名为cards的表中有3列。idpackTitle术语id是一列-从0.......100开始的整数packTitle-描述包的字符串,假设有3种包PACK1、PACK2、PACK3term-101个项目的不同未排序名称。通过SQL语句selectpackTitlefromcardsgroupbypackTitle;我可以获得3个项目的列表。您能否建议NSPredicate等同于SQL语句GROUPBY。我需要获取一个数组以填充到UITableView中。 最佳答案 CoreData是一个对象图管理框架,而不是SQL数据存

ios - NSPredicate 在 NSArray 上搜索任何对象

我有一个包含名称、地址、电话的对象数组。编号等我希望能够在数组中搜索任何出现的术语-无论是在名称字段、地址字段等中。我有这样的想法:-(void)filterContentForSearchText:(NSString*)searchTextscope:(NSString*)scope{//Updatethefilteredarraybasedonthesearchtextandscope.//Removeallobjectsfromthefilteredsearcharray[self.searchResultsremoveAllObjects];//Filterthearrayus

ios - NSPredicate 过滤数组中对象中的数组

我有以下方法:-(NSMutableArray*)getFilteredArrayFromArray:(NSMutableArray*)arraywithText:(NSString*)text{if([arraycount]前2个谓词工作正常。但是最后一个(aToZPredicate)不起作用。stationSearchData是StationSearchData对象,browseAtozArray是NSMutableArray。我如何使用谓词在数组中的数组中搜索数组?这是StationSearchData对象的接口(interface):@interfaceStationSearc

ios - 格式化 NSPredicate : Matching "ANY" that match two conditions

**我对如何格式化NSPredicate感到有点不知所措,其中“任何”特定关系都匹配多个条件。例如,假设我正在为“雇主”实体执行提取请求,我想获取所有至少有一名18岁以下雇员的雇主。因此,我可以使用"ANYemployees.age-足够简单。但是假设我想匹配任何有未满18岁且姓氏为“Howser”的员工。也就是说,雇主仅匹配“18岁以下的任何雇员”和“名为‘Howser’的任何雇员”是不够的——他们必须至少有一名雇员符合这两个条件。这个谓词将如何格式化? 最佳答案 这是您需要SUBQUERY的罕见情况之一:SUBQUERY(emp

ios - 具有多个条件的 NSPredicate

我正在尝试创建一个具有多个条件的NSPredicate。我找到了几种解决方案,但似乎没有一种适用于我的方法。我发现的最好看的是下面。这是我的单一谓词方法,它工作得很好:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"namecontains[c]%@",searchText];filteredBusinesses=[businessesfilteredArrayUsingPredicate:predicate];这是我编辑后的版本,有多个条件。我不确定出了什么问题。有什么想法吗?NSPredicate*p1=[NSPred

ios - 核心数据 - NSPredicate 过滤掉工作不正确的空字符串

我在我的项目中使用核心数据已有一段时间了。几天前,我发现一些保存在数据库中的记录没有显示在应用程序用户界面中。我已经跟踪它并发现当我使用NSPredicate过滤掉空字符串时根本没有获取它们。所有这些都以非字母字符开头。为了澄清问题,我创建了一个示例项目并将一些示例数据添加到数据库中。假设它们是“Sample”、“+sample”、“Sample+”。这是我用来过滤掉空字符串的代码片段。"text"为字符串属性名,moc为NSManagedObjectContext实例。NSFetchRequest*request=[[NSFetchRequestalloc]initWithEntit