В iOS печать нулевого адреса памяти для отображения 0x0 означает отсутствие места для хранения? - PullRequest
0 голосов
/ 26 октября 2018

Я хочу знать разницу между nil и [NSNull null], поэтому я использую NSLog(@"nil==== =%p",nil), and NSLog(@"null====%p",[NSNull null]), чтобы распечатать их адреса памяти, но результат печати равен nil==== =0x0, null=== 0x1022c2f08, я не совсем понимаю, что 0x0 значит, кто-нибудь может мне помочь понять?

1 Ответ

0 голосов
/ 26 октября 2018

ноль

Литеральное нулевое значение для объектов Objective-C - это означает указатель объекта Objective-C, который указывает на 0x0 - все указатели на цель c начинаются с нуля.

NSNull

Одноэлементный объект, используемый для представления нулевого объекта. Это оболочка для нулевого объекта, так что вы можете поместить его в коллекцию, например NSArray / NSDictionary

NSArray * a1 = @[[NSNull null]]; //Good
NSArray * a2 = @[nil]; // Crash

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...