2012-10-01 127 views
-3

使用isEqualToString我用下面的代碼來檢查,如果字符串不等於值:在IF語句或

if (![myString isEqualToString:@"text1"]) 
//DO SOMETHING 

現在我想2個或多個字符串與此代碼比較:

if (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"]) 
//DO SOMETHING 

它不工作......當我把它分成2個IF語句它的工作時,這裏有什麼問題?

回答

0

用途:

if (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"]) 

但有一些奇怪的這種邏輯。如果它不是text1或者它不是text2始終保證爲真,因爲它不能同時出現。我強烈建議您查看您的邏輯條件。

像你要檢查它是否沒有text1text2,在這種情況下,代碼應該是這聽起來對我說:

if (! ([myString isEqualToString:@"text1"] || [myString isEqualToString:@"text2"])) 
+0

謝謝,第二個代碼正是我所需要的。 – vadim

+0

@Inafziger你在乎解釋這最後的評論? – mprivat

+0

不,我只是錯過了你已經把括號內的兩個比較。 :-) – lnafziger

1

您需要使用||作爲OR。

例如if (![myString isEqualToString:@"text1"] || ![myString isEqualToString:@"text2"])

+0

(或者,即使是OR) – Wildaker

+0

已修復,謝謝:P – Martin

1

如果你想MyString的時候做的東西不是非此即彼的價值觀(這裏唯一有意義的事),你可以使用:

if (![myString isEqualToString:@"text1"] && ![myString isEqualToString:@"text2"]) 
     // DO SOMETHING 

這裏使用了&&運營商,這意味着他們都必須是真實的。例如「myString不是text1 myString不是text2」。