Как использовать ключевые пути в NSPredicate на NSArray из NSStrings? - PullRequest
1 голос
/ 01 января 2012

Кто-нибудь знает, как использовать ключевые пути в NSPredicate?

Я пытаюсь использовать ключевые пути, но произошла ошибка.
Я хочу использовать "dictate like 'AAA'" в качестве ключевого пути.

Исходный код:

- (void)Predictate{
    dictate = [[NSMutableArray alloc]initWithObjects:@"AAA",@"BBB",@"CCC", nil];

    NSPredicate *test = [NSPredicate predicateWithFormat:@"dictate like 'AAA'"];

    NSMutableArray *result = [dictate filteredArrayUsingPredicate:test];

    NSLog(@"%@",result);
}

Это сообщение об ошибке:

2012-01-02 01: 33: 33.673 фильтр [1867: 707]* Завершение работы приложения из-за необработанного исключения 'NSUnknownKeyException', причина: '[<<__ NSCFConstantString 0x1000022f0> valueForUndefinedKey:]: этот класс не соответствует значению ключа, соответствующему кодировке для диктата ключа.'

1 Ответ

3 голосов
/ 01 января 2012

"self LIKE 'AAA'" работает.Протестировано.

Это довольно тонкий факт, что вы можете отправить self объекту Objective-C и получить указатель на сам объект (попробуйте [obj performselector:@selector(self)]).Вот как это работает.

...