有没有办法使用XOR作为谓词的运算符。
我有一个File对象,我想知道是否有英文文件。如果它不是英文版,它应该返回德语版本。如果两者都可用,则不应返回德语版本。这就是我需要XOR的原因。
示例:
[NSPredicate predicateWithFormat:@"file.language = 'en' XOR file.language = 'de'"];
这将仅返回英文文件。
答案 0 :(得分:2)
根据http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-SW1,似乎没有这样的运营商。如果需要,你必须使用parantheses并将XOR b转换为(a AND NOT b)OR(不是a和b)。无论如何,请注意Henning对此的评论无论如何都没有帮助。您的陈述中的一个问题是它不平衡,即您希望英语版本具有优先权。最简单的方法可能是
file.language = 'en'
file.language = 'de'
这样您就可以确保英文文件的优先级。