2012-07-04 181 views
0

我使用此代碼使用常量之間的邏輯&&來比較兩個字符串:警告有關iPhone

NSComparisonResult result = [cellTitle compare:searchText options:(NSCaseInsensitiveSearch && NSLiteralSearch)]; 

但Xcode中列出了警告有關使用邏輯& &,並提供按位&使用,通過逐位&比較唐不會返回正確的結果。

我該如何解決?

回答

5

您正在嘗試將位掩碼的兩個部分組合在一起。您可以使用按位或運算符或XOR運算符,或者爲此添加 - |,^+。規範將是|

+1

在這種情況下,他會想使用按位或('|') –

+0

@Dave - 爲什麼?他們是真正的位掩模的成員,所以三者是相同的。我同意這可能是我通常使用的習慣,但它們都有效。 –

+0

你說得對,所有三個人都會在這裏工作。但是在這種情況下,你幾乎看不到'^'或'+',所以在這裏使用它們可能會導致未來的混亂。 –

1

你應該做的事:

NSComparisonResult result = [cellTitle compare:searchText 
          options:(NSCaseInsensitiveSearch | NSLiteralSearch)]; 

這些標誌是一個二進制數只有一個1套。所以當你做一個邏輯|時,你會得到兩者的「混合」(例如:1000 | 0100 => 1100),這樣你可以設置多個標誌作爲選項。