2014-05-01 112 views
0
name <> myname 

我覺得有點愚蠢的問這個問題,但我在子查詢中使用上面的謂詞。我期待看到名稱與我的名字不相等的所有行。但是,沒有返回具有名稱NULL值的行。這是正確的行爲?核心數據不等於謂詞

+0

如果你在玩字符串,'<>'可能是一個不好的解決方案。請參閱'LIKE','NOT'等。 – Larme

回答

4

是的,這是可以預料的。見Null Values的「謂詞編程指南」中:

比較謂詞不匹配除空 (nil)與空的任何數值或NSNull空值(即,($value == nil)返回YES 如果$valuenil)。
...
如果你想匹配空值,您必須包含除其他比較具體的測試,...

這意味着,"name = myname""name <> myname"評估爲NO,如果name 是NULL。

您可以將謂詞更改爲

name <> myname OR name = NULL 

涵蓋這兩種情況。