Objective-C:NSLog 为分配给 nil 的 var 打印 (null)?

发布于 2024-08-16 12:51:38 字数 211 浏览 5 评论 0原文

我很好奇为什么一个变量公开分配给 nil,用 NSLog 打印为 (null):

NSString *myVar = nil;
NSLog(@"%@", myVar);

# RESULT: ' (null) '

这当然很令人困惑,因为在 Objective-C 中要弄清楚所有不同类型的“虚无”,并且让我尝试测试各种IF NULL 语法。

I'm curious why a variable overtly assigned to nil, prints as (null) with NSLog:

NSString *myVar = nil;
NSLog(@"%@", myVar);

# RESULT: ' (null) '

This is of course quite confusing given all the different kinds of "nothingness" to figure out in Objective-C, and had me trying to test various IF NULL syntaxes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

百思不得你姐 2024-08-23 12:51:38

不同种类的“虚无”总结如下:

nil  //Null pointer to an Objective-C object
Nil  //Null pointer to an Objective-C class
NULL  //Null pointer

以上所有定义为((void *)0)

The different kinds of "nothingness" summed up:

nil  //Null pointer to an Objective-C object
Nil  //Null pointer to an Objective-C class
NULL  //Null pointer

All of the above are defined as ((void *)0).

独守阴晴ぅ圆缺 2024-08-23 12:51:38

(null) 是用于打印目的的“nil”的字符串表示形式...与 IF NULL 检查无关。 myVar 仍然nil

(null) is the string representation of 'nil' for printing purposes... nothing related to IF NULL checks. myVar is still nil

非要怀念 2024-08-23 12:51:38

这就是 %@ 格式的作用,它将 nil 转换为 NSNullmyVar 本身仍然是nil。您仍然可以使用 if (myVar) 进行测试。

This is what %@ format does, it casts nil to NSNull. myVar itself is still nil. You can still use if (myVar) for testing.

优雅的叶子 2024-08-23 12:51:38

这只是方法 NSLog IMHO 的实现。

It's just the implementation of the method NSLog IMHO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文