Все, я пытаюсь сделать следующее, не получая результата и не уверен, где я ошибаюсь. В моем случае srchString
будет передан из searchDisplayController, чтобы строка поиска была динамической. Просто потому, что черт его пробовал жестко кодировать значение, как в приведенном ниже примере, и он ничего не возвращал. Так что ищите некоторую помощь в решении этой проблемы. СпасибоПоиск NSArray из NSDictionary с использованием NSPredicate
(
{
amount = "-243.77";
date = "May 21, 2014";
description = "Preauthorized Debit";
extraMap = {
MEMO = "ATT Payment";
RUNBAL = "$100,159.51";
id = 123456789454444440000002
};
longDate = "2014-05-22";
referenceId = " ";
sortDate = "2014-05-22 04:00:00 +0000";
transactionDateAsCal = "1432267200000:America-New_York";
},
{
amount = "5058.74";
date = "May 21, 2014";
description = "Deposit";
extraMap = {
MEMO = "WXYZAWQH BATCH";
RUNBAL = "$100,159.51";
id = 124259821201505220000001;
};
longDate = "2014-05-22";
referenceId = " ";
sortDate = "2014-05-22 04:00:00 +0000";
transactionDateAsCal = "1432267200000:America-New_York";
}
)
NSArray *listOfKeys = [[NSArray alloc]initWithObjects:@"amount", @"date", @"description", @"memo", @"runbal", @"referenceId",@"longDate", @"id", nil];
//Sample test. This search string will be passed from the searchDisplayController.
NSString *srchString = @"Preauthorized";
//If the searchstring has an exact match then it works Like below
//NSString *srchString = @"Preauthorized Debit";
NSMutableArray *subpredicates = [NSMutableArray array];
for (NSString *key in listOfKeys) {
NSPredicate *subpredicate = [NSPredicate predicateWithFormat:@"%K contains[cd] %@", key, srchString];
[subpredicates addObject:subpredicate];
}
NSPredicate *resultPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:subpredicates];
NSLog(@"predicate %@",resultPredicate);
NSArray *tempArr = [transactionList filteredArrayUsingPredicate:resultPredicate];
NSLog(@"tempArr %@", tempArr);
Вашей фильтрующей transactionList но это не называется где-нибудь в вашем коде. Наверное, почему это ничего не возвращает. Кроме того, ваш вызов предиката, который находится внутри цикла – soulshined
transactionList - это в основном образец NSArray, который я перечислял выше. Вероятно, должен был уточнить, что ... прошу об этом. – user1657861
Ваш предикат не может быть достигнут ResultPredicate, потому что он находится в цикле. – soulshined