我试图建立一个查询字符串或断言,但我不断收到此错误,NSPredicate:“无法解析格式字符串'%@'”?
基本上我不明白的是,这工作得很好:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(name contains[cd] 'o')"];
但这:
NSString *predString = @"(name contains[cd] 'o')";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"%@", predString];
抛出这个:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "%@"'
是的,只是创建格式化的字符串,并通过在 – 2012-04-17 21:00:37
这不是一个适当的解决方案的问题。它会打开你的代码多达各种万一格式字符串注入攻击'predString'包含用户提供的数据(例如,'帐户==“用户%K%@”'和'用户%K%@'是攻击者提供的数据)。你应该永远不要在任何'... withFormat:'方法中使用除了常量字符串之外的任何字符串。 –
user8472
2014-11-06 14:23:39