2012年1月13日 星期五

寫(!ivar)好還是(nil != ivar)好?

偶然在stackoverflow看到有人問這個問題,覺得還滿有趣的,分享一下
http://stackoverflow.com/questions/6782190/vs-nil-in-objective-c
if(!ivar)
{
  //do something
}
or
if(nil != ivar)
{
  //do something
}
簡單重點:
(!ivar)是利用原始C沒有確切的boolean值這個特性,若0則判斷為假,非0則判斷為true。
在Obj-C里,若欲判斷標的為指標的話,因為nil「通常」會是0x000000,所以如果不是0x000000,則為true。
但是,nil有可能不是0x000000,所以理論上,寫(nil != ivar)是比較安全的。

沒有留言:

張貼留言