2010-12-13 54 views
2

當我使用==比較它適用於所有的字符串,但一些字符串添加一個空格...(添加[NSString stringWithFormat:@"%@ %@",self.title,collectionName])比較字符串目標C

但是,當我與isEqualToString比較,返回TRUE/YES每次,圖像中的比較進入狀態,打回...應該是不可能爲這行打640,但它的作用。

任何人都可以解釋一下嗎?

alt text

回答

2

在線637上的「)」之後有一個「;」,表示爲什麼它總是進入條件...該死的我吮吸......似乎會以某種方式拋出錯誤

+0

哈哈哈,至少你抓到了它 – 2010-12-13 04:59:08

+1

經典C錯誤。我曾經不得不調試由一位實際上是一位非常優秀的程序員的同事編寫的代碼。他在100條源代碼行中曾三次犯過同樣的錯誤。這可能是星期五下午的代碼。 – JeremyP 2010-12-13 08:59:04

1

如果您使用LLVM compiler在調試項目設置中,(對於發佈而言,我覺得還不夠穩定),您會收到有關您所遇到的問題的警告。

在你的情況下,它會發出一個警告,而不是「if」語句有一個空的正文。

配合使用開啓靜態分析儀對每個版本,您可以捕捉一噸的問題的早期,尤其是愚蠢的人,是很難調試,因爲他們是如此愚蠢,他們很容易忽視(我在這裏不要批評你,因爲我無數次犯過同樣的錯誤!)