Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中,打印nil内存地址以显示0x0意味着没有存储空间?_Ios_Objective C - Fatal编程技术网

在iOS中,打印nil内存地址以显示0x0意味着没有存储空间?

在iOS中,打印nil内存地址以显示0x0意味着没有存储空间?,ios,objective-c,Ios,Objective C,我想知道nil和[NSNull-null]之间的区别,所以我使用NSLog(@“nil=======%p”,nil)和NSLog(@“null======%p”,“NSNull-null])来打印它们的内存地址,但打印的结果是nil======0x0,null==0x1022c2f08,我不太明白0x0的意思,有人能帮我理解吗?无 Objective-C对象的文本空值。它表示指向0x0的Objective-C对象指针。所有Objective-C指针都以nil开头 NSNull 用于表示空对象的单

我想知道
nil
[NSNull-null]
之间的区别,所以我使用
NSLog(@“nil=======%p”,nil)和NSLog(@“null======%p”,“NSNull-null])
来打印它们的内存地址,但打印的结果是
nil======0x0,null==0x1022c2f08
,我不太明白
0x0
的意思,有人能帮我理解吗?

无 Objective-C对象的文本空值。它表示指向0x0的Objective-C对象指针。所有Objective-C指针都以nil开头

NSNull 用于表示空对象的单例对象。它是空对象的包装器,因此您可以将其放入像NSArray/NSDictionary这样的集合中

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

零 Objective-C对象的文本空值。它表示指向0x0的Objective-C对象指针。所有Objective-C指针都以nil开头

NSNull 用于表示空对象的单例对象。它是空对象的包装器,因此您可以将其放入像NSArray/NSDictionary这样的集合中

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

0x0
是十进制值的十六进制语法
0
是否占用内存空间?是否可能重复取决于此。它是objective C中的一个关键字,与指针的类型相同。如果将
nil
值存储在某个位置,那么肯定会占用存储空间。如果您在程序中使用它,从技术上讲,这会占用内存程序段中的存储空间。但是根据你对记忆的理解,我倾向于说答案是“不”。如果这是你的意思的话,它肯定不是一个可以实例化的对象。。表示指针不指向任何内容或地址0x0。。0.. 然而
[NSNull null]
是一个用于在字典中表示nil/null的对象,因为iOS中的字典无法存储“nil”值。。IE:在解析JSON时,iOS在字典中存储“NSNull”以表示nil。将“NSNull”视为原语“nil”的装箱版本
“NSNull-用于表示集合对象中不允许为空值的空值的单例对象。”-Apple
0x0
是十进制值的十六进制语法
0
是否占用内存空间?是否可能重复取决于此。它是objective C中的一个关键字,与指针的类型相同。如果将
nil
值存储在某个位置,那么肯定会占用存储空间。如果您在程序中使用它,从技术上讲,这会占用内存程序段中的存储空间。但是根据你对记忆的理解,我倾向于说答案是“不”。如果这是你的意思的话,它肯定不是一个可以实例化的对象。。表示指针不指向任何内容或地址0x0。。0.. 然而
[NSNull null]
是一个用于在字典中表示nil/null的对象,因为iOS中的字典无法存储“nil”值。。IE:在解析JSON时,iOS在字典中存储“NSNull”以表示nil。将“NSNull”视为原语“nil”的装箱版本
“NSNull-一个用于表示集合对象中不允许为零值的空值的单例对象。”-Apple
嗯,链接内容非常详细,现在让我明白了,谢谢。嗯,链接内容非常详细,现在让我明白了,谢谢。