NULL против нуля в Objective-C

В observeValueForKeyPath:ofObject:change:context: – почему документы используют NULL вместо nil если не указывать указатель контекста?

nil следует использовать вместо id , что мы, программисты Java и C ++, будем рассматривать как указатель на объект. Используйте NULL для указателей без объектов.

Посмотрите на объявление этого метода:

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 

Контекст – это void * (то есть указатель C-стиля), поэтому вы обязательно должны использовать NULL (который иногда объявляется как (void *)0 ), а не nil (который имеет id типа).

Они технически одинаковы (0), но ноль обычно используется для объектного объекта Objective-C, а NULL используется для указателей c-стиля (void *).

Они технически одинаковы и отличаются только стилем:

  • Стиль Objective-C говорит, что nil – это то, что нужно использовать для типа id (и указателей на объекты).
  • Стиль C говорит, что NULL – это то, что вы используете для void * .
  • Стиль C ++ обычно говорит, что вы должны просто использовать 0 .

Обычно я использую вариант, соответствующий языку, в котором объявлен тип.

NULL – это C equivalent nil , указатель на ничего;

где nil is zero typed as id ,

NULL is zero typed as void* .

Одним из важных моментов вы не можете отправить сообщение в NULL. Поэтому во многих местах предпочтительно использовать ноль в объективе-С.

Они почти одно и то же, кроме,

nil используется в стиле Objective-C. где NULL – для указателей типа C и является typdef’ed (void *) .

  • Как проверить программно, если приложение установлено?
  • как скрыть навигационную панель, когда я нажимаю навигационный controller?
  • Декларация о свойствах и автоматическое резервирование хранилища
  • Использование хеша MD5 в строке в cocoa?
  • Как я смогу удалить объекты из NSMutableArray?
  • Как получить размер NSString
  • iphone error: expected '=', ',', ';', 'asm' или '__attribute__' перед '' foo '
  • Как изменить определенный цвет в изображении?
  • Соглашение об именах iPhone ivar
  • Запустите NSRunLoop в командной строке программы Cocoa
  • Прокрутка UITableView внутри UIScrollView
  • Interesting Posts

    Производительность bcp / BULK INSERT по сравнению с табличными параметрами

    Улучшила ли Microsoft Windows Scandisk, CHKDSK и Defrag в Windows 7?

    Я внезапно не могу получить доступ к своему собственному серверу в своей локальной сети через внешний IP-адрес WAN

    Реализуйте очередь, в которой push_rear (), pop_front () и get_min () – все операции с постоянным временем

    Как изменить удаленный repository для подмодуля git?

    Порядок выполнения документа jquery готов

    Айви, какая главная конфигурация и почему она не тянет jvyaml?

    Оценка арифметических выражений из строки в C ++

    Как установить минимальный и максимальный размер кучи Java с помощью переменных окружения?

    Пример Basic Simple Asp.net + jQuery + JSON

    Предоставление разрешения на запись нескольким пользователям в папке в Ubuntu

    Как я могу генерировать случайные буквенно-цифровые строки в C #?

    Почему у ImmavableList Guava столько перегруженных методов ()?

    Возможна ли прямая трансляция с ПК с Windows на телевизор с поддержкой DLNA?

    Как можно полиморфная десериализация Json String с использованием Java и библиотеки Jackson?

    Давайте будем гением компьютера.