在OC中bool的實(shí)質(zhì)是unsigned char狞谱,而yes和no只不過是int類型的1和0狡孔。
unsigned char只有8bits撩匕,int至少是16bit害捕。
所以當(dāng)你把int賦值給bool的時(shí)候它只截取最后的8bits來(lái)使用绿淋。
如果某int值非0,但是它的末8bit是0尝盼,那么賦值給bool的時(shí)候就是no吞滞,這就會(huì)出現(xiàn)錯(cuò)誤。
所以能夠得出一個(gè)結(jié)論——BOOL==YES這樣的判斷可能是不準(zhǔn)確的东涡,所以要判斷對(duì)錯(cuò)直接用BOOL就行冯吓,就是if(BOOL)這樣倘待。
bool、BOOL组贺、_BOOL是一樣的凸舵,但是boolean卻和int是一樣的。
在OC中只使用BOOL失尖。
如何保證BOOL能返回正確的YES或者NO呢啊奄?
使用三元操作符,即掀潮,BOOL菇夸?YES:NO。