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。