通过谓词进行整数比较

我正在使用核心数据,其中我有一个名为“Scan”的实体,它有一个属性,例如电子数据 ,它是NSNumber类型。 现在假设在数据库中我有3个此Scan属性的条目。

  • 该实体的一个条目,其中35个为electronic_id
  • 该实体的第二个条目具有354作为electronic_id
  • 该实体的第三个条目有375个为electronic_id

我正在搜索此属性。 所以当我开始通过传递3来搜索实体时我想要所有这3个对象。当我通过35然后我想要前两个对象。

我想通过谓词在NSNumber上部分匹配对象。 我正在使用这个function。

 -(void)filteredContentWithSearchText:(NSString*)searchText { if([searchText length]) { int value=0; value=[searchText intValue]; if ([strSelectedType isEqualToString:@"Electronic ID"]) { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"electronic_id == %d",value]; NSManagedObjectContext *context =[self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Scan" inManagedObjectContext:context]; [fetchRequest setEntity:entity]; [fetchRequest setPredicate:predicate]; NSError *error=nil; NSArray *results = [context executeFetchRequest:fetchRequest error:&error]; if (error==nil) { } else if (error!=nil) { NSArray *results =[APP_DELEGATE CallForGetScan:YES Predicateis:predicate]; [arrSessionSearchData removeAllObjects]; [arrSessionSearchData addObjectsFromArray:results]; } } } } 

请帮助如何在NSPredicate比较整数。

提前致谢。

尝试将整数转换为字符串并进行比较

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"electronic_id.stringValue CONTAINS[c] %@",searchText]; 

@ sage444你的答案是我几个小时都在寻找的。 奇迹般有效。

我只为未来的读者提供Swift版本:

 let predicate = NSPredicate(format: "%K.stringValue CONTAINS[c] %@", #keyPath(YOUR_MODEL.number), substring)