Я пытаюсь найти всех клиентов, содержащих определенную последовательность букв. Я хочу, чтобы функциональность была идентична 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];
Вместо получения всех Matts, Matthews и т. Д. Он зависает, когда я пытаюсь распечатать результаты. Я отладил его, и мы даже не получаем пустой массив NSArray. Я печатаю NSArray на консоль, и я не получаю 0 элементов .. Я просто ничего не получаю.
Я пробовал делать дамп БД на консоль, и он содержит все нужные вещи. ПОМОГИТЕ!!!
= ОБНОВЛЕНИЕ =============================================== =========
Я использую% K и получаю странную ошибку времени выполнения:
if (searchResults1 != nil){
NSLog(@"%Matches: %i", [searchResults1 count]);
}else {
NSLog(@"Was NULL");
}
Это в строке NSLog (@ "% Matches :. Это ПЛОХАЯ ошибка EXC. Итак, searchResults1 не nill, но он вылетает, когда я пытаюсь прочитать счетчик? Когда я отлаживаю, searchResults1 действительно является NSArray, но, похоже, в нем ничего нет.