В чем разница между нулем и ноль - PullRequest
27 голосов
/ 10 мая 2011

В объективе C?

Они действительно одно и то же?

Как проверить, что объект нулевой?

Ответы [ 3 ]

50 голосов
/ 10 мая 2011

Nil и nil определены как одно и то же (__DARWIN_NULL) и предназначены для обозначения нулевого значения (нулевого указателя, например NULL). Nil предназначен для указателей классов, а nil предназначен для указателей объектов (подробнее об этом можно прочитать в objc.h ; поиск по Nil). Наконец, вы можете проверить нулевое значение следующим образом:

if (object == nil)

или как это:

if (!object)

, поскольку в результате логических вычислений любой действительный указатель, содержащий объект, оценивается как true.

10 голосов
/ 10 мая 2011

nil - это константа Objective-C для нулевого указателя на объект, Nil определяется идентично.На практике оно имеет то же значение, что и постоянная C NULL.Тест на нулевой объект, подобный этому:

if (fooObj == nil)

В моем коде я склонен использовать nil для объектов Objective-C и NULL для других указателей C.Это вопрос личного вкуса - в настоящее время ноль и NULL взаимозаменяемы для сравнения во всех существующих реализациях Objective-C.

3 голосов
/ 21 января 2014
  • nil (все строчные буквы) - это нулевой указатель на объект Objective-C.
  • Ноль (с заглавной буквы) - это нулевой указатель на класс Objective-C.
  • NULL (все заглавные буквы) - нулевой указатель на что-либо еще.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...