Я пытаюсь найти всех клиентов, которые содержат определенную последовательность букв.Я хочу, чтобы функциональность идентичная NSString rangeofString за исключением регистра.Вот мой метод:
-(NSArray *) db_search: (NSString *) table where: (NSString*) fieldKey contains: (NSString*) value withSortField: (NSString *) sortField{
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:table inManagedObjectContext:context];
if (fieldKey != nil){
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"(%@ contains[c] %@)",
fieldKey,value];
[request setPredicate:predicate];
}
[request setEntity:entity];
if (sortField != nil){
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:[self extractSortField:sortField] ascending:[self isAscending:sortField]] autorelease];
NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortDescriptor, nil] autorelease];
[request setSortDescriptors:sortDescriptors];
}
NSError *error;
return [context executeFetchRequest:request error:&error];
}
Я вызываю его со следующими значениями:
NSArray * results = [self db_search:@"Customer" where:@"fullname" contains:@"matt" withSortField:nil];
Вместо того, чтобы получить все Маты, Матфея и т. Д., Он зависает, когда я пытаюсь распечататьРезультаты.Я отладил его, и мы даже не вернули пустой NSArray.Я печатаю NSArray на консоль, и я не получаю 0 элементов .. Я просто ничего не получаю.
Я попытался сделать дамп базы данных на консоль, и он содержит все нужные вещи.ПОМОГИТЕ!!!
= ОБНОВЛЕНИЕ =====================================================
Я использую% K и получаю странную ошибку времени выполнения:
if (searchResults1 != nil){
NSLog(@"%Matches: %i", [searchResults1 count]);
}else {
NSLog(@"Was NULL");
}
ВключеноNSLog (@ "% Matches: line. Это ошибка BAD EXC. Поэтому searchResults1 не равен nill, но вылетает, когда я пытаюсь прочитать счетчик?внутри него.