iphone – NSPredicate in NSFetchedResultsController acting strange – Education Career Blog

NSPredicate *predicate = NSPredicate predicateWithFormat:@"List.name == 'kristof\\'s list'"; 

Works as expected.
However I want do something like this:

    NSString *listName = detailItem valueForKey:@"name" description stringByReplacingOccurrencesOfString:@"'" withString:@"\\'";
NSPredicate *predicate = NSPredicate predicateWithFormat:@"List.name == '%@'", listName;

It returns nothing, even if I try this:

NSPredicate *predicate = NSPredicate predicateWithFormat:@"List.name == '%@'", @"kristof\\'s list";

It remains empty.
Any ideas ?

,

The behaviour of NSString stringWithFormat and NSPredicate predicateWithFormat are different. NSString performs the substitution on creation, whereas NSPredicate on evaluation. Your single quotes are preventing the substitution.

For more take a look at the CocoaDev Forums.

Leave a Comment