Tag: nspredicate

使用NSPredicate删除对象

我有这个有许多子字典的词典。 如何使用NSPredicate从父字典中删除isChanged = 1对象? { "0_496447097042228" = { cellHeight = 437; isChanged = 1; }; "100000019882803_193629104095337" = { cellHeight = 145; isChanged = 0; }; "100002140902243_561833243831980" = { cellHeight = 114; isChanged = 1; }; "100004324964792_129813607172804" = { cellHeight = 112; isChanged = 0; }; "100004324964792_129818217172343" = { cellHeight = 127; isChanged = 0; }; […]

NSPredicate'ALL或ANY操作符的左侧必须是NSArray或NSSet'

不完全确定为什么这不是现在的工作,我以为它以前一直工作。 有没有人看到这个FetchRequest构造的问题? – (NSArray *)entriesForDate:(NSDate *)date { NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"Entry"]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY addedOn.unique like %@", [T3Utility identifierForDate:date]]; request.predicate = predicate; NSError *error = nil; NSArray *matches = [self.database.managedObjectContext executeFetchRequest:request error:&error]; return matches; } 再次,我99%肯定,这个代码一直在工作,直到最近,所以即时通讯思考也许还有别的事情在我的代码在某处。 。 但是当我通过debugging器运行它时,这是挂起的地方。 这是我的错误: ALL或ANY操作符的左侧必须是NSArray或NSSet 有任何想法吗? 谢谢!

NSP预先消除了SQL的GROUP BY等价物

为了简化:表中有三列名为卡片。 id packTitle术语 id是一个列 – 从0到100的整数 packTitle – string描述包,可以说有三种包PACK1,PACK2,PACK3 长期 – 101个项目的不同未sorting的名称。 通过SQL语句 select packTitle from cards group by packTitle; 我可以得到3件物品的清单。 你可以build议NSPredicate相当于SQL语句GROUP BY。 我需要得到一个数组来填充UITableView。

核心数据不支持所有和IN谓词

我有这样的要求: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY attributes.attribute.attributeId IN %@", attributeIds]; 这将返回一个对象列表,它具有一个或多个我设置的属性。 我想获得具有所有传递属性的对象列表,所以我试着: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ALL attributes.attribute.attributeId IN %@", attributeIds]; 但是我有一个例外: 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)' 无论如何,我甚至不确定这是否是正确的要求。 说我有属性列表: [red, green, blue] , 我怎样才能得到至less有这些属性的所有对象? * Object_1 (red, green, blue) * Object_2 (red, green, blue, yellow, brown) * Object_3 (red, green blue, black, brown) 但不是Object_4 (red, […]

NSPredicate在关系实体内进行search

我有一个名为Band的实体,它与Category实体有多对多的关系。 Category实体只包含一个categoryNamestring属性。 一个例子logging: Band: bandName: Kiss bandCategories: – > BandCategory:categoryName:Glam – > BandCategory:categoryName:Rock 例如,我将如何使用NSPredicatesearch所有与乐队类别相匹配的乐队?

NSPredicate未执行

这很有趣。 在我的应用程序中,我在数据库中创build了数千个条目(在另一个线程中,我使用的是MagicalRecord)。 一切似乎工作正常(从背景/前景/背景的angular度来看)。 在主线程中,当我试图获取“刚刚插入”的数据时,我发现了以下行为: – (NSArray *) familiesInCompany:(Company *) company { NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"company == %@", company]; NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"company.name == %@", company.name]; NSArray *first = [Family MR_findAllSortedBy:@"name" ascending:YES withPredicate:predicate1]; NSArray *second = [Family MR_findAllSortedBy:@"name" ascending:YES withPredicate:predicate2]; NSArray *third = [Family MR_findByAttribute:@"company" withValue:company andOrderBy:@"name" ascending:YES]; return second; } 现在我得到的是: 第一:是一个空的数组 第二:包含所有的Family对象,如预期的那样 […]

按属性IN数组筛选核心数据结果

我目前有Core Data成功返回一个名为Event的特定实体的所有结果: NSManagedObjectContext *context = [delegate managedObjectContext]; NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:context]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setEntity:entityDescription]; NSError *error; NSArray *fetchResults = [context executeFetchRequest:request error:&error]; Event实体的一个属性是一个名为tid的string。 我也有一个包含所有允许的tid值的数组filterArray 。 我如何让我的核心数据请求只返回具有匹配filterArray中的值之一的tid属性的事件? 我相信答案与NSPredicate有关,但我对此还不够熟悉,还没有完全达到我的意愿。

NSPredicate子查询语法

我有一个不友善的字典arrays,依次有数据的数组,我试图根据传递谓词的任何内部数组过滤外部数组。 我似乎无法创build一个NSPredicate来完成这个工作。 我开始与: NSPredicate *lookupPredicate = [NSPredicate predicateWithFormat: @"row_values.property_id == %@ AND row_values.property_value == %@", @"47cc67093475061e01000540", @"Male"]; [dataRows filterUsingPredicate:lookupPredicate]; 这不返回任何值。 我尝试了各种forms的任何forms,但我似乎无法find任何它将parsing。 同样,目标是只保留外部数组字典内的任何内部数组字典内容为真的谓词。 我可以看到我咀嚼了一天的时间,弄清楚这个工作的咒语……有什么想法? dataRows: ( { row = 1; "row_values" = ( { "property_id" = 47cc67093475061e01000542; "property_value" = "Mr."; }, { "property_id" = 47cc67093475061e01000540; "property_value" = Male; } ); }, { row = 2; "row_values" […]

使用NSPredicate过滤NSDictionary对象的NSArray

我有NSArray的NSDictionary对象。 我想使用NSPredicate根据字典的键过滤数组。 我一直在做这样的事情: NSString *predicateString = [NSString stringWithFormat:@"%@ == '%@'", key, value]; NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateString]; NSArray *filteredResults = [allResultsArray filteredArrayUsingPredicate:predicate]; 这个工作正常,如果他们的钥匙传入是单词:颜色,名称,年龄。 但是,如果密钥是多字,则不起作用,如:人员年龄,人员姓名。 基本上,任何包含空格的键都不起作用。 我试图把单引号围绕string中的键,就像他们在价值方面做,但也没有工作。 也试过双引号,但无济于事。 请告知这个。 提前致谢。

iOS CoreData NSPredicate一次查询多个属性

我想使用UISearchBar查询NSManagedObject多个属性我有一个名为Person的NSManagedObject ,每个人都有一个name和socialSecurity属性。 现在我的代码可以对这些属性或其他属性执行search(提取),但不能同时执行这两个属性。 – (void) performFetch { [NSFetchedResultsController deleteCacheWithName:@"Master"]; // Init a fetch request NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"MainObject" inManagedObjectContext:self.managedObjectContext]; [fetchRequest setEntity:entity]; // Apply an ascending sort for the color items //NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Term" ascending:YES selector:nil]; NSSortDescriptor *sortDescriptor; sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"fullName" ascending:YES selector:@selector(caseInsensitiveCompare:)]; NSArray […]