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
).