我在看一些舊的代碼,看到下面的if語句:isMainThread和currentThread == mainThread有什麼區別?
if ([NSThread currentThread] != [NSThread mainThread])
我暗自懷疑,這是不一樣的
if (![[NSThread currentThread] isMainThread])
我懷疑,因爲我們正在從字段中獲取一些崩潰報告(僅iOS 6),這些報告似乎是由需要在主線程上運行的代碼造成的。該代碼似乎受到前if語句的保護,但鑑於我們看到的崩潰數量,我並不確信。
這兩個if語句是否等價,還是有可能第一個會因爲某種原因失敗?
最好的選擇是使用類方法:'+ [NSThread isMainThread]'。這比您的代碼更短,更清晰。 –