В чем причина ошибки при использовании NSPredictate? - PullRequest
0 голосов
/ 01 января 2012

Я использовал класс NSPredictate, но произошла следующая ошибка. Я не могу знать причину.

Почему возникает следующая ошибка?

enter image description here

Следуйте за исходным кодом.

#import "Predictate.h"

@implementation Predictate

@synthesize dictate;

-(id)init{
    if ((self = [super init])) {
    }
    return self;
}

- (void)Predictate{
    dictate = [[NSMutableArray alloc]initWithObjects:@"AAA",@"BBB",@"CCC", nil];
    NSPredicate *test = [NSPredicate predicateWithFormat:@"dictate like 'AAA'"];

    NSMutableArray *result = [dictate filteredArrayUsingPredicate:test];

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

-(void)dealloc{
    [dictate release];
    [super dealloc];
}

@end

Сообщение об ошибке ниже.

2012-01-02 00: 57: 39.972 фильтр [1750: 707] *** Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[<__ NSCFConstantString 0x100002290> valueForUndefinedKey:]: этот класс не является значением ключа совместимый с кодировкой для диктата ключа. '

1 Ответ

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

Вы используете NSPredicate для фильтрации массива строковых объектов, но используете dictate like 'AAA'.Предикат не будет иметь абсолютно никакого представления о том, что означает dictate.

Вы захотите заменить dictate на SELF, чтобы оно стало "SELF like 'AAA'"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...