Получить все элементы, начиная с заданной строки - PullRequest
0 голосов
/ 05 июня 2011

Я хочу получить все элементы, которые начинаются с данной строки.
Приведенный ниже код возвращает тысячи элементов, когда я не использую предикат, но когда он присутствует, я получаю ноль записей.

Я проверил имена полей и термины, которые наверняка существуют в базе данных sqlite.

NSManagedObjectContext *context        = [[DataSource sharedInstance] managedObjectContext];
NSEntityDescription    *entityDesc     = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:context];
NSSortDescriptor       *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"startTime" ascending:YES];
NSPredicate            *predicate      = [NSPredicate predicateWithFormat:@"(%@ beginswith %@)", fieldName, searchTerm, nil];

NSFetchRequest *request = [[NSFetchRequest alloc] init];

[request setEntity:entityDesc];
[request setPredicate:predicate];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];

NSError *error = nil;
NSArray *objects = [context executeFetchRequest:request error:&error];
[request release];

return objects;

Решено
Следующее решение проблемы:

NSString               *str            = [NSString stringWithFormat:@"%@ beginswith \"%@\"", fieldName, titleTerm];
NSPredicate            *predicate      = [NSPredicate predicateWithFormat:str];

Содержимое содержало неправильную упаковку цитат.

1 Ответ

1 голос
/ 05 июня 2011

При решении своей проблемы вы должны ответить на свой вопрос, а не редактировать вопрос. Если вы этого не сделаете, этот вопрос будет отображаться как без ответа. Вы можете принять этот ответ, и вопрос будет помечен как решенный.


Следующее решило проблему:

NSString               *str            = [NSString stringWithFormat:@"%@ beginswith \"%@\"", fieldName, titleTerm];
NSPredicate            *predicate      = [NSPredicate predicateWithFormat:str];

Содержимое содержало неправильную упаковку цитат.

...