通过谓词进行整数比较
我正在使用核心数据,其中我有一个名为“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)