gpt4 book ai didi

iphone - NSLog 指针语法

转载 作者:可可西里 更新时间:2023-11-01 05:02:25 25 4
gpt4 key购买 nike

我对 NSLog 的语法有点困惑。例如,

    NSString *nameString = @"Name";    NSLog(@"nameString is: %@", nameString);    
如果我的理解是正确的(很可能不正确),则 nameString 被定义为指向 String 的指针。我当时认为这将打印 nameString 保存的内存地址,而不是该地址的值。所以,如果这是真的,那么在 NSLog 语句中,为了获取指针的值,我们是否需要使用星号表示法来访问 nameString 指向的内容,如下所示:
    NSLog(@"nameString is: %@", *nameString);    
?用 C 编程已经有一段时间了,但由于 Objective-C 是 C 的超集,我认为它们的行为相似。

如有解释,将不胜感激!谢谢!

最佳答案

命令 %@ 就像调用接收器上的方法 -description 的“快捷方式”。对于 NSString 它只显示字符串本身,因为它是从 NSObject 继承的,你可以覆盖它,如果你为自己的类创建它非常有用。在这种情况下,默认行为是打印指针的值。
如果你想打印字符串中指针的地址,只需替换为:

NSLog(@"nameString is: %p", nameString)

关于iphone - NSLog 指针语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com