草庐IT

NSPredicate

全部标签

ios - NSFetchedResultsController 中的 NSPredicate 没有使用 Category 的 getter

我有一个名为seconds的具有int_32属性的属性。在一个类别中,我将该属性重新声明为只读并重写getter以从其他属性创建它。问题是当我使用[NSPredicatepredicateWithFormat:@"SELF.seconds>%i"];谓词不起作用,因为谓词未调用getter。它在我的其他代码中调用得很好,只是不在谓词中。任何人都知道为什么会发生这种情况或如何解决这个问题?(除了重新创建NSFetchedResultsController)。 最佳答案 谓词被转换为SQL并在商店上运行。它不运行您的任何代码。因此,您只

ios - NSPredicate遍历关系(StackMob)

我也一直在搜索Apple的PredicateProgrammingGuide和SO,试图确定为特定获取请求编写谓词的正确方法。请求似乎没有遵守我尝试使用点符号来遍历关系的方式。NSEntityDescription*entity=[NSEntityDescriptionentityForName:@"Task"inManagedObjectContext:context];[fetchRequestsetEntity:entity];NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"project.user==%@",sel

objective-c - NSPredicate 对一个查询字符串进行多次比较

我想知道是否有一种方法可以简化NSPredicate,该NSPredicate为多个比较目标采用单个查询字符串。我正在为同一查询字符串搜索核心数据实体的多个属性。我当前的查询看起来像这样......[NSPredicatepredicateWithFormat:@"(attributeAcontains[cd]%@)OR(attributeBcontains[cd]%@)OR(attributeCcontains[cd]%@)",searchString,searchString,searchString];请注意,这非常有效,但看起来确实有点难看。特别是searchString,se

objective-c - 使用 NSPredicate 使用 2D-NSDictionaries 过滤 NSArray

我有一个包含一些NSDictionaries的NSArray,它们本身也包含一个NSDictionary。NSDictionary*dict1=[NSDictionarydictionaryWithObject:[NSDictionarydictionaryWithObject:@"cover"forKey:@"type"]forKey:@"image"];NSDictionary*dict2=[NSDictionarydictionaryWithObject:[NSDictionarydictionaryWithObject:@"cover"forKey:@"type"]forKey

ios - 用于手机号码验证的 NSPredicate

如何通过NSPredicate验证电话号码(NSString*)?规则:最少10位数字最多10位第一个数字必须是7,8或9谢谢 最佳答案 基于正则表达式的NSPredicate将满足您的要求。NSString*stringToBeTested=@"8123456789";NSString*mobileNumberPattern=@"[789][0-9]{9}";NSPredicate*mobileNumberPred=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@",mobileNum

objective-c - 带有 NSNumber 数组的 NSPredicate

我有一个NSNumber数组,例如:10015、12313、10016我想检查数组是否包含我在搜索栏中输入的整数。我的代码:NSPredicate*resultPredicate=[NSPredicatepredicateWithFormat:@"SELFCONTAINS[c]%d",[searchTextintValue]];self.searchResults=[newArrfilteredArrayUsingPredicate:resultPredicate]; 最佳答案 如果您只需要数组是否包含它的bool值,那么您就想要。

ios - 使用 NSPredicate 按日期过滤核心数据不返回任何内容

嗨,我是这个核心数据的新手。我有两个实体CategoryList和ExpenseList。CategoryList由两个属性组成1.日期(nsdate)2.类别(nsstring)在与ExpenseList的许多关系中,关系名称是“expenseList”费用list包括1.花费的金额(float)。我只是想了解coredata中的关系特征。当我尝试创建一个nspredicate以按特定日期过滤数据时,它什么也不返回。我只是想过滤特定日期的CategoryList实体中的类别属性内容。这是我的代码-(void)callingByDate{NSManagedObjectContext*m

ios - NSPredicate 在 CONTAINS 上崩溃?

我正在尝试对对象数组执行简单的谓词筛选。数组中的对象有2个属性,displayValue和value。我正在尝试根据搜索字符串进行过滤,但出现崩溃。NSPredicate*pred=[NSPredicatepredicateWithFormat:@"displayValueCONTAINS[cd]%@",searchString];NSArray*results=[_datafilteredArrayUsingPredicate:pred];这种格式究竟有什么不正确之处会导致Can'tusein/containsoperatorwithcollection100(notacollect

ios - NSPredicate 在 CoreData 中按字母顺序获取记录

我正在尝试从一个实体中获取记录,这些记录超过5000条。所以我想获取按字母顺序排序(名称参数)的记录,而不是在结果数组上使用NSSortDescriptor进行排序。是否可以对按字母顺序排序的fetech记录放置任何谓词。 最佳答案 在您的NSFetchRequest*fetchRequest中设置NSSortDecriptor,就像您对任何谓词所做的那样[fetchRequestsetSortDescriptors:@[[[NSSortSDescriptoralloc]initWithKey:@"nameparameter"asc

ios - NSPredicate 用于 2 对多关系

我对NSPredicate的语法有疑问。我有3个实体:A、B和C。A与B具有多对多关系。B与C具有多对多关系。我想获取A中至少具有一种关系的所有托管对象B中的一个对象反过来又与C中的至少一个对象有关系。我已经尝试了SUBQUERY和ANY的一些变体,但显然我没有使用正确的语法。我试过:NSFetchRequest*fetchRequest=[[NSFetchRequestalloc]init];NSEntityDescription*ent=[NSEntityDescriptionentityForName:@"A"inManagedObjectContext:self.managed