我已在我的应用程序中实现了Core Database并从表中获取数据。 如果数据包含或不包含连字符( - )
,则应用程序要求将获取相同的数据对于Exp1: 表包含以下数据
Id Serialnumber Name 1 ABC ABC2015 2 A-BC AB-C001
表列SerialNumber包含ABC,A-BC,如果用户搜索 AB-C 总是与ABC相同,A-BC
Exp 2:
Id Serialnumber Name 1 AB-C AB-C2015 2 A-BC A-BC001
表列SerialNumber包含AB-C,A-BC,如果用户搜索 ABC ,则始终与AB-C,A-BC相同
这是我的代码
+(NSMutableArray*)fetchDataFromCoreDatabase:(NSString*)searchString {
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:k_CoreDBEnity_SerailnumerinManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Serialnumber == %@",searchString];
[fetchRequest setPredicate:predicate];
NSError *error = nil;
NSArray *result = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (error) {
nslog(@"Unable to execute fetch request.");
error, error.localizedDescription]];
}
return [result mutableCopy];}
那么任何想法如何实现这种方法? 提前谢谢!
答案 0 :(得分:0)
如果是我,我会添加一个额外的隐藏字段,仅用于搜索,不包括连字符。然后我会在取出之前删除连字符。在您的示例中:
serialNumberSearch
的字段。对于您的示例数据,这将始终为“ABC”,没有-
。A-BC
或AB-C
,请先删除-
,然后搜索与serialNumberSearch
字段匹配的结果。根据您的描述,结果将包含任何匹配的内容。