Reputation: 2007
In my project below is the Dictionary, i have a list of dictionaries which i am trying to get the same value based on predicate but i am not getting the value.
NSPredicate* searchPredicate = [NSPredicate predicateWithFormat:@"(%K CONTAINS[c] %@)",@"**equipArray.equipmentName**",textField.text];
NSLog(@"searchPredicate %@",searchPredicate);
NSArray* searchList = [list filteredArrayUsingPredicate:searchPredicate];
But i am not able to get the list. can anyone help me ?
{
equipArray = (
{
equipmentIcon = "outside.png";
equipmentName = Outside;
},
{
equipmentIcon = "steps.png";
equipmentName = Steps;
},
{
equipmentIcon = "partner.png";
equipmentName = Partner;
}
);
exId = 4;
exeName = "Fireman Carry";
exerciseAudioCue = "DG Fighting Fit-exercise_audio_test.mp3";
exerciseDescription = "Proin gravida nibh vel velit auctor aliquet. Aenean sollicitudin, lorem quis bibendum auctor, nisi elit consequat ipsum, nec sagittis sem nibh id elit. Duis sed odio sit amet nibh vulputate cursus a sit amet mauris. Morbi accumsan ipsum velit. Nam nec tellus a odio tincidunt auctor a ornare odio. Sed non mauris vitae erat consequat auctor eu in elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris in erat justo. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim.";
exerciseType = Stamina;
imageThumbNail = "firemancarry_thumbnail.png";
longVideoName = long;
shortVideoName = small;
}
Upvotes: 1
Views: 73
Reputation: 540075
If you want to find elements where any equipmentName
in the equipArray
contains the
given string, use:
[NSPredicate predicateWithFormat:@"ANY %K CONTAINS[c] %@", @"equipArray.equipmentName", textField.text];
("CONTAINS" is for string comparison, not to check for containment in an array.)
Upvotes: 3
Reputation: 2909
NSPredicate *searchPredicate=[NSPredicate predicateWithFormat:@"ANY %K == [cd] %@", @"equipArray.equipmentName", @"steps"];
Upvotes: 0
Reputation:
try like this,
NSPredicate* searchPredicate = [NSPredicate predicateWithFormat:@"(equipArray.equipmentName CONTAINS[c] %@)",textField.text];
Upvotes: 0
Reputation: 21912
Use this predicate this:
[NSPredicate predicateWithFormat:@"equipArray.equipmentName =[cd] %@", textField.text];
Upvotes: 0