微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在Objective-C中使用NSLog时,引导指针

NSDate *Now = [NSDate date];
NSLog(@"This NSDate object lives at %p",Now);
NSLog(@"The date is %@",Now);

好的,从这个代码,我知道现在是一个指向NSDate对象的指针,但是在第3行的代码中,你如何取消引用没有星号的指针?为什么我们不这样做这样的代码在第三行:

NSLog(@"The date is %@",*Now);

解决方法

%@将一个指向一个对象的指针发送给它,该消息返回一个Nsstring指针. (您可以覆盖类中的描述以自定义字符串.)

增加了回应评论

在Objective-C中,您可以使用[objectPointer message]语法通过指针向对象发送消息.所以,使用你的NSDate示例,你可以做:

NSDate * Now = [NSDate date];
Nsstring * dateDescription = [Now description];    // Note that "Now" points to an object and this line sends it the "description" message
NSLog(dateDescription);

从NSObject继承的类的任何实例都可以发送描述消息,因此可以将指向它的指针传递给一个%@ format参数.

(技术说明:如果对象支持descriptionWithLocale:message,则会被发送).

原文地址:https://www.jb51.cc/iOS/329905.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐