我正在使用核心数据,其中我有一个名为"扫描" 的实体,其中有一个属性为 electronic_id ,其为{{ 1}}类型。现在假设在数据库中我有3个扫描属性的条目。
NSNumber
。electronic_id
。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];
}
}
}
}
中的整数。
先谢谢。
答案 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)