使用 predicateWithFormat,%@ 被 "" 包围。我们需要使用 %K 作为键。
例如[NSPredicate predicateWithFormat @"%@ == %@" ,@"someKey",@"someValue"]
变成
"someKey" == "someValue"
在 stringWithFormat 时,%@ 没有被 "" 包围
[NSString stringWithFormat @"%@ == %@" ,@"someKey",@"someValue"]
变成someKey == someValue
为什么有区别?
我错过了什么吗?
为什么在 predicateWithFormat 中使用 %@ 表示“Value”,因为这不是 %@ 在 stringWithFormat 中的意思。为什么不创建一个新的表示法,比如 %V 来获取“Value”,而 %@ 保持 Value 就像在 stringWithFormat 对应项中一样。
为什么 Apple 决定相同的符号,即 %@ 应该具有不同的含义。
他们真的不一样吗?我错过了什么吗?