通过谓词进行整数比较

时间:2014-04-01 08:09:35

标签: ios objective-c core-data

我正在使用核心数据,其中我有一个名为"扫描" 的实体,其中有一个属性为 electronic_id ,其为{{ 1}}类型。现在假设在数据库中我有3个扫描属性的条目。

  • 此实体的一个条目,其中35为NSNumber
  • 此实体的第二个条目,其中354为electronic_id
  • 此实体的第三个条目,其中375为electronic_id

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

我希望electronic_id上的部分匹配对象通过谓词。 我正在使用这个功能。

NSNumber

请帮助比较-(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]; } } } } 中的整数。

先谢谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

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