Нет, вы должны различать сам идентификатор объекта и его содержимое.Содержимое NSNumber
, установленное в 0, вполне может быть нулевым, но id для указанного объекта на самом деле является реальным адресом.
Например, идентификатор объекта 0x2222
может выглядеть следующим образомэто в памяти (очень упрощенно):
+--------+
0x2222 --> | 0x0000 |
+--------+
Вы можете видеть, что идентификатор объекта не ноль, а реальное значение. содержимое объекта равно нулю, но это не относится к идентификатору объекта.
В массиве с переменными значениями находятся значения идентификаторов для объектов, а не содержимое этих объектов.