У меня есть словарь, имеющие два массива, словарь являетсякак оценить NSDictionary в NSPredicate
NSDictionary * StudentDetails = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:StudentIDs,StudentNames, nil] forKeys:[NSArray arrayWithObjects:@"ID",@"NAME", nil]];
и два массива является
NSArray * StudentIDs = [NSArray arrayWithObjects:@"07bg1234",@"07ac1234", nil];
NSArray * StudentNames = [NSArray arrayWithObjects:@"aaaaaaa",@"bbbbb", nil];
и я попытался предикаты для получения значений массива в виде
NSString * searchStr = @"07bg1234";
NSPredicate * fileExtPredicate01 = [NSPredicate predicateWithFormat:@"SELF IN %@", StudentIDs];
if (([fileExtPredicate01 evaluateWithObject: searchStr]== YES)) {
NSLog(@"Student ID: %@ Exists",searchStr);
}
else {
NSLog(@"Student ID: %@ not Exists",searchStr);
}
до этого он отлично работает .... когда я попытался получить значения словаря как
NSPredicate * fileExtPredicate02 = [NSPredicate predicateWithFormat:@"SELF IN %@", StudentDetails];
if (([fileExtPredicate02 evaluateWithObject: searchStr]== YES)) {
NSLog(@"Student Details: %@ Exists",searchStr);
}
else {
NSLog(@"Student Details: %@ not Exists",searchStr);
}
Я всегда получаю о/р, как Студенческая деталь **** не существует ... Как я могу получить «searchStr» есть или нет в словаре, используя предикаты ???? Спасибо в Advance
если searchStr это значение в StudentIDs это Ok .. если searchStr это значение в StudentNames он не работает .. В поручении Predicate вы не упоминается словарь ?? достаточно только ключевого значения ???? – Sunil
Конечно, для элементов в 'StudentNames' есть ключ' NAME' – vadian
searchStr может быть либо в ID, либо в NAME. Вышеприведенный код предлагает ограничить searchStr для ID ... У меня есть идея, которая не ограничивает поискStr, но ему нужен еще один предикат. Поскольку словарь содержит n количество массивов, мне нужно создать n число предикатов. . Есть ли другой способ в простом формате – Sunil