国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS中nil,Nil,NULL之間的區別

2019-11-14 18:20:20
字體:
來源:轉載
供稿:網友

1、說明

nil:指向oc中對象的空指針

Nil:指向oc中類的空指針

NULL:指向其他類型的空指針,如一個c類型的內存指針

NSNull:在集合對象中,表示空值的對象

 

若obj為nil:

[obj message]將返回NO,而不是NSException

 

若obj為NSNull:

[obj message]將拋出異常NSException

 

2、用法

nil和NULL從字面意思來理解比較簡單,nil是一個對象,而NULL是一個值,我的理解為nil是將對象設置為空,而NULL是將基本類型設置為空的。而且我們對于nil調用方法,不會產生crash或者拋出異常。

NSURL *url = nil;Class class = Nil;int *pointerInt = NULL;

nil是一個對象指針為空,Nil是一個類指針為空,NULL是基本數據類型為空。

這五個概念很容易混淆,在一些場合下他們具有同樣的用法。首先解釋一下“空指針”意思,空指針是指該指針未指向一塊有意義的內存區。如int *p; int *p = NULL;

NSObject *obj1 = [[NSObject alloc] init];NSObject *obj2 = [NSNull null];NSObject *obj3 = [NSObject new];NSObject *obj4;NSArray *arr1 = [NSArray arrayWithObjects:obj1, obj2, obj3, obj4, nil];NSLog(@"arr1 count: %ld", [arr1 count]); //count: 3 因為obj=nil,在加入obj4時就結束添加對象 NSObject *obj1;NSObject *obj2 = [[NSObject alloc] init];NSObject *obj3 = [NSNull null];NSObject *obj4 = [NSObject new];NSArray *arr2 = [NSArray arrayWithObjects:obj1, obj2, obj3, obj4, nil];NSLog(@"arr2 count: %ld", [arr2 count]); //count: 0,因為obj1=nil,所以后面的對象沒有添加進去

  

[NSNull null]通常作為占位符作用,如下:

NSObject *obj1 = [NSNull null];NSArray *arr1 = [NSArray arrayWithObjects:@"One", @"TWO", obj1,@"three",nil];for (NSString *str in arr1) {   NSLog(@"array object: %@", str); } //result:One、Two、、three NSObject *obj1 = [NSNull null];NSArray *arr1 = [NSArray arrayWithObjects:@"One", @"TWO", obj1,@"three",nil];for (NSString *str in arr1) {  if (str != [NSNull null]){     NSLog(@"array object: %@", str);  }}

  

最后個人小站推薦:http://www.iosask.com 大家一起溝通學習。

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资溪县| 延庆县| 五大连池市| 邵武市| 宁波市| 华阴市| 西丰县| 湟中县| 许昌县| 阜阳市| 阳信县| 营口市| 彰武县| 娄烦县| 博野县| 抚顺县| 泗阳县| 凉城县| 邢台县| 拉萨市| 鲁甸县| 恩平市| 藁城市| 三台县| 永新县| 古浪县| 县级市| 柘荣县| 息烽县| 延长县| 临沭县| 河曲县| 沈阳市| 治多县| 青岛市| 神农架林区| 襄樊市| 黔西| 密山市| 蒙阴县| 玛沁县|