2013年11月6日 星期三

nil / Nil / NULL / NSNull

網路上很多文章都解釋啦, 不過還是看自己寫的比較快


nil / Nil Apple有解釋
下面引用官方 Objective-C Runtime Reference部分內容

#define nil __DARWIN_NULL
#define Nil __DARWIN_NULL

nil
  Defines the id of a null instance.
Nil
  Defines the id of a null class.

從define來看 nil / Nil 是一樣的意思, 用的時間點不同而已

nil Example:
a. NSString *myString = nil;
b. NSURL *myURL = nil;
c. id myObject = nil;
d. if (myNewObject == nil)


Nil Example:
a. Class myClass = Nil;




來看NULL, 用在C的Pointer上, 根據網路上資料說明是用於C Style的寫法, (void *)
NULL Example:
int *myPointerToInt = NULL;
char *myPointerToChar = NULL;

[UIView beginAnimations:@"anim" context:NULL];




來看NSNull, 我的理解為空物件 NSNull是個class, 有個class method
+ (NSNull *)null;
如此做法可以讓你在NSArray中塞入像這樣東西
NSArray *arr = @[view, [NSNull null], label];


參考資料
When to use nil and NULL in Objective C?
nil / Nil / NULL / NSNull
Difference between NULL, nil and Nil in iOS

沒有留言:

張貼留言