Nspredicate in NSFetchedResultsController acting strange

Nspredicate in NSFetchedResultsController acting strange

问题描述:

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

按预期工作。 不过,我想这样做:Nspredicate in NSFetchedResultsController acting strange

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

它没有返回值,即使我试试这个:

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

它仍然是空的。 任何想法?

[NSString stringWithFormat]和[NSPredicate predicateWithFormat]的行为是不同的。 NSString在创建时执行替换,而NSPredicate在评估中执行。你的单引号阻止了替换。

欲了解更多请看CocoaDev Forums