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

首頁 > 系統 > iOS > 正文

iOS中nil、Nil、NULL、NSNull有何區別?

2020-02-19 15:56:17
字體:
來源:轉載
供稿:網友

  ObjC里面有幾個空值符號經常會弄混,那么iOS中nil、Nil、NULL、NSNull有何區別呢?今天小編就給大家講講iOS中nil、Nil、NULL、NSNull的區別吧,感興趣的朋友跟小編一起來了解一下吧!

  nil

  nil 是 ObjC 對象的字面空值,對應 id 類型的對象,或者使用 @interface 聲明的 ObjC 對象。

  例如:

  NSString *someString = nil;

  NSURL *someURL = nil;

  id someObject = nil;

  if (anotherObject == nil) // do something

  定義:

  // objc.h

  #ifndef nil

  # if __has_feature(cxx_nullptr)

  # define nil nullptr

  # else

  # define nil __DARWIN_NULL

  # endif

  #endif

  // __DARWIN_NULL in _types.h

  #define __DARWIN_NULL ((void *)0)

  Nil

  Nil 是 ObjC 類類型的書面空值,對應 Class 類型對象。

  例如:

  Class someClass = Nil;

  Class anotherClass = [NSString class];

  定義聲明和 nil 是差不多的,值相同:

  // objc.h

  #ifndef Nil

  # if __has_feature(cxx_nullptr)

  # define Nil nullptr

  # else

  # define Nil __DARWIN_NULL

  # endif

  #endif

  NULL

  NULL 是任意的 C 指針空值。

  例如:

  int *pointerToInt = NULL;

  char *pointerToChar = NULL;

  struct TreeNode *rootNode = NULL;

  定義:

  // in stddef.h

  #define NULL ((void*)0)

  NSNull

  NSNull 是一個代表空值的類,是一個 ObjC 對象。實際上它只有一個單例方法:+[NSNull null],一般用于表示集合中值為空的對象。

  例子說明:

  // 因為 nil 被用來用為集合結束的標志,所以 nil 不能存儲在 Foundation 集合里。

  NSArray *array = [NSArray arrayWithObjects:@"one", @"two", nil];

  // 錯誤的使用

  NSMutableDictionary *dict = [NSMutableDictionary dictionary];

  [dict setObject:nil forKey:@"someKey"];

  // 正確的使用

  NSMutableDictionary *dict = [NSMutableDictionary dictionary];

  [dict setObject:[NSNull null] forKey:@"someKey"];

  定義:

  /* NSNull.h

  Copyright (c) 1994-2012, Apple Inc. All rights reserved.

  */

  #import

  @interface NSNull : NSObject ,>

  + (NSNull *)null;

  @end

  小結

  雖然 nil, Nil, NULL 的值相同,理解它們之間的書面意義才重要,讓代碼更加明確,增加可讀性。

  以上所述就是iOS中nil、Nil、NULL、NSNull的區別了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永济市| 安泽县| 开封县| 汪清县| 清流县| 株洲县| 福贡县| 阆中市| 武定县| 衡阳市| 交城县| 都昌县| 江都市| 依兰县| 丽江市| 富源县| 山西省| 睢宁县| 勃利县| 黄梅县| 永仁县| 本溪市| 洮南市| 板桥市| 富平县| 桐城市| 甘肃省| 昌都县| 德安县| 南昌市| 尉氏县| 阿拉善右旗| 饶平县| 大悟县| 盘山县| 江川县| 句容市| 松潘县| 永寿县| 敦煌市| 东至县|