标签:双引号 form tps ica cep anti ken str pid
字面量:
字符串:单引号或双引号扩起来;
%@:系统自动添加,数字则自动去除@();
无单双引号,系统做数字处理。
Single or double quoting variables (or substitution variable strings) cause %@
, %K
, or $variable
to be interpreted as a literal in the format string and so prevent any substitution.
系统自动添加 double quoting
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K = %@", @"a", @"ddd"];
NSPredicate *predicatex = [NSPredicate predicateWithFormat:@"eee = %@", @"ddd"];
NSPredicate *predicateh = [NSPredicate predicateWithFormat:@"h = ‘hhh‘"];
NSPredicate *predicatee = [NSPredicate predicateWithFormat:@"%K = %@",@"c", @(7)];
NSPredicate *predicatep = [NSPredicate predicateWithFormat:@"%K = %d",@"e", 7];
NSLog(@"\r\n%@\r\n%@\r\n%@\r\n%@\r\n%@",predicate,predicatex,predicateh,predicatee,predicatep);
a == "ddd"
eee == "ddd"
h == "hhh"
c == 7
e == 7
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"appId == ‘%@‘", [FQAccountManager sharedFQAccountManager].appId]];
属于二次转化。
The predicate string parser is whitespace insensitive, case insensitive with respect to keywords, and supports nested parenthetical expressions. The parser does not perform semantic type checking.
Variables are denoted with a dollar-sign ($
) character (for example, $VARIABLE_NAME
). The question mark (?
) character is not a valid parser token.
The format string supports printf
-style format specifiers such as %x
(see Formatting String Objects). Two important format specifiers are %@
and %K
.
%@
is a var arg substitution for an object value—often a string, number, or date.
%K
is a var arg substitution for a key path.
When string variables are substituted into a string using the %@
format specifier, they are surrounded by quotation marks. If you want to specify a dynamic property name, use %K
in the format string, as shown in the following example.
NSString *attributeName = @"firstName"; |
NSString *attributeValue = @"Adam"; |
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@", |
attributeName, attributeValue]; |
The predicate format string in this case evaluates to firstName like "Adam"
.
Single or double quoting variables (or substitution variable strings) cause %@
, %K
, or $variable
to be interpreted as a literal in the format string and so prevent any substitution. In the following example, the predicate format string evaluates to firstName like "%@"
(note the single quotes around %@
).
NSString *attributeName = @"firstName"; |
NSString *attributeValue = @"Adam"; |
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like ‘%@‘", |
attributeName, attributeValue]; |
Predicate Format String Syntax 与字面量
标签:双引号 form tps ica cep anti ken str pid
原文地址:http://www.cnblogs.com/feng9exe/p/7091143.html