2011-12-14 67 views
2
NSLog(@"%@",variable); 
temp = @"(null)"; 
if([variable isEqualToString:temp]) 

這是我使用的代碼,並作爲輸出我得到爲什麼這些字符串不相等?

[4298:207](空)

過程中由於某種原因,但他們是不相等的。理解這一點超出了我的想象。 這兩個變量都是NSString類型的。

回答

9

(null)只是%@格式說明符在輸出值爲nil時的輸出。 variable中有什麼是nil,不是字面意義的字符串(null)

+0

謝謝。已經解決了我的問題。我會盡快接受答案。 – Pillblast 2011-12-14 14:15:27

0

你不明白的原因是因爲你混合了兩件不一樣的東西。然而,當我們使用書面語言並描述這兩件事時,它們在紙上/屏幕上看起來是一樣的......至少對你來說。

首先您必須瞭解說明/ 標籤之間的區別

如果我寫NULL ...你看到的是一個描述。它描述/表示/意味着什麼? NULL意味着什麼。然而,當你編寫代碼時,你不會寫變量=無。你寫變量= NULL。 標籤 - 這意味着 NULL - 沒有

當你寫TEMP = @「空「..你狀態的臨時變量字符串從4個字符的值,它是這四個-null 標籤 - 這意味着 @ 「null」 - 包含4個字符的字符串(空)

然後您比較的含義/值。,不是descritions。顯然,沒有不等於4個字符的字符串。

相關問題