NSP предикатный массив фильтров - PullRequest
1 голос
/ 21 декабря 2011

Как я могу использовать NSPredicate для фильтрации массива, где объект в переменной массива -> _ title равен переменной title? Я попробовал следующее ниже, но это ничего не отфильтровывает.

NSMutableArray *array = [[posts mutableCopy] autorelease];
NSString *title = [[TBForrstr sharedForrstr] stringForPostType:type];
[array filterUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"SELF->_title == %@", title]]];

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

Убедитесь, что заголовок точно соответствует в массиве. Или, если вы хотите быть более гибким, сделайте его без учета регистра:

NSMutableArray *array = [[posts mutableCopy] autorelease];
NSString *title = [[TBForrstr sharedForrstr] stringForPostType:type];
[array filterUsingPredicate:[NSPredicate predicateWithFormat:@"_title == [cd]%@", title]];
1 голос
/ 21 декабря 2011

Этот работает для меня - обратите внимание на одинарные кавычки вокруг строки:

NSArray *posts = [NSArray arrayWithObjects:
    [NSDictionary dictionaryWithObjectsAndKeys: @"Cat or dog?", @"_title", nil],
    [NSDictionary dictionaryWithObjectsAndKeys: @"I saved a file, where is it?", @"_title", nil],
    [NSDictionary dictionaryWithObjectsAndKeys: @"How should I do this?", @"_title", nil],
nil];

NSMutableArray *array = [[posts mutableCopy] autorelease];
NSString *title = @"Cat or dog?";
[array filterUsingPredicate:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@"SELF._title == '%@'", title]]];

NSLog(@"%@", array);
0 голосов
/ 21 декабря 2011

Просто используйте что-то вроде:

[NSPRedicate predicateWithFormat:@"title LIKE %@",title]

Заголовок должен соответствовать вашему _title ivar через KVC

...