首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UIViewController的默认描述

UIViewController的默认描述
EN

Stack Overflow用户
提问于 2012-09-26 22:45:36
回答 2查看 325关注 0票数 1

UIViewController的默认描述中的数值是什么?我曾期望它是实例地址,或者可能是散列,但当我测试这个理论时,我得到的是:

代码语言:javascript
复制
NSLog(@"Self [%@]", self);
NSLog(@"Address [%p]", &self);
NSLog(@"Hash [%d]", [self hash]);

2012-09-26 10:28:00.202 QuickList7[85957:c07] Self [<SelectCategoryViewController: 0xa42fc60>]
2012-09-26 10:28:00.202 QuickList7[85957:c07] Address [0xbfffdea8]
2012-09-26 10:28:00.203 QuickList7[85957:c07] Hash [172162144]

我在参考资料中找不到UIViewController或它的超类的解释--有人知道吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-26 22:53:16

对于使用NSOBject的默认实现的任何其他description实现来说,这确实是实例地址。

但是实例地址已经在self变量中,因为self的类型是UIViewController*,并且已经是一个指针。打印 &self 的指针值,就像您在示例中所做的那样,打印指针的地址(指向指针的指针),而不是实例的地址,因为&self确实是UIViewController**类型。

如果您使用NSLog(@"%p", self)而不是NSLog(@"%p", &self),您将看到打印的地址与description使用的地址相同,并与NSLog(@"%@", self)一起显示。

票数 3
EN

Stack Overflow用户

发布于 2012-09-26 22:52:39

它是实例地址。在第二行中,您将打印指向实例的指针的地址(它在堆栈上,这就是地址以0xbfff开头的原因)。而不是实例指针本身。NSLog(@"%p", self);将显示与使用%@self作为对象打印时显示的值相同的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12604362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档