Какая разница между нолем и нилом
В Objective C?
Они действительно то же самое?
Как проверить, что объект равен нулю?
Ответы
Ответ 1
Nil
и Nil
определяются как одно и то же (__DARWIN_NULL
) и означают недействительность (нулевой указатель, например NULL
). Nil
предназначен для указателей классов, а Nil
предназначен для указателей объектов (вы можете прочитать больше на нем objc.h; поиск Nil
), Наконец, вы можете проверить значение null следующим образом:
if (object == nil)
или вот так:
if (!object)
поскольку логические оценки сделают любой действительный указатель, который содержит объект, который будет иметь значение true.
Ответ 2
nil
является константой Objective-C для нулевого указателя на объект, nil
определяется идентично. На практике он имеет то же значение, что и константа C NULL
. Проверьте нулевой объект следующим образом:
if (fooObj == nil)
В моем коде я обычно использую nil
для Objective-C объектов и NULL
для других указателей C. Это вопрос личного вкуса - в настоящее время nil и NULL взаимозаменяемы для сравнения во всех существующих реализациях Objective-C.
Ответ 3
- nil (все строчные буквы) является нулевым указателем на объект Objective-C.
- Nil (с заглавной буквы) является нулевым указателем на класс Objective-C.
- NULL (все кепки) является нулевым указателем на что-либо еще.