私は理解できないものを基本的に私は、クエリ文字列や述語を構築しようとしているが、私はこのエラーを得続ける、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 "%@"'
ええ、フォーマットされた文字列を作成し、それを –
に渡してください。これは適切な解決策ではありません。 'predString'にユーザ提供のデータが含まれている場合(例えば、' account == "user%K%@" ''%K%@ ''という形式の文字列注入攻撃まで、あなたのコードを開きます。攻撃者提供のデータ)。 '... withFormat:'メソッドのいずれかで定数文字列以外のものを使用するべきではありません。 –
user8472