4
目標C中的BOOL值始終爲NO(默認情況下)。但是最近我遇到了BOOL變量的值返回YES的情況(默認情況下)。有人可以向我解釋這一點嗎?目標C中Bool的值
目標C中的BOOL值始終爲NO(默認情況下)。但是最近我遇到了BOOL變量的值返回YES的情況(默認情況下)。有人可以向我解釋這一點嗎?目標C中Bool的值
BOOL
沒有任何價值,因爲它是一種類型。
您可能是指BOOL類型的變量。有不同類型的變量,它有不同的初始化語義:
alloc
承諾,所有實例變量設置爲零,這在BOOL的情況下,意味着NO
;如果你聲明一個沒有初始化的變量,操作系統將隨機分配內存,並在該瞬間分配的內存可能包含一些垃圾值。那個垃圾可以表示No也可以是Yes值。
建議:始終使用正確的初始化聲明變量以避免代碼中的錯誤。
#3是我要發佈的內容! – Wevah 2010-07-12 11:08:53
這是否意味着int a在Objective C中總是不會賦值0? – mindfreak 2010-07-12 11:12:29
@Mindfreak:正好。所有本地(函數作用域)變量都必須被初始化。 – 2010-07-12 11:22:35