kiri
kiri

Reputation: 2007

Facing issue with NSPredicate

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

Answers (4)

Martin R
Martin R

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

iKushal
iKushal

Reputation: 2909

 NSPredicate *searchPredicate=[NSPredicate predicateWithFormat:@"ANY %K == [cd] %@", @"equipArray.equipmentName", @"steps"];

Upvotes: 0

user2455507
user2455507

Reputation:

try like this,

NSPredicate* searchPredicate = [NSPredicate predicateWithFormat:@"(equipArray.equipmentName CONTAINS[c] %@)",textField.text];

Upvotes: 0

mprivat
mprivat

Reputation: 21912

Use this predicate this:

[NSPredicate predicateWithFormat:@"equipArray.equipmentName =[cd] %@", textField.text];

Upvotes: 0

Related Questions