gpt4 book ai didi

ios - 为什么 NSLog 会这样打印?

转载 作者:行者123 更新时间:2023-11-29 10:46:22 24 4
gpt4 key购买 nike

代码行:

@interface ViewController (){
IBOutlet UILabel *lbl_FirstName;
IBOutlet UILabel *lbl_LastName;

}

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];

lbl_FirstName.text=@"XFirst";
lbl_LastName.text=@"XLast";

NSLog(@"First Name: %@",lbl_FirstName.text);
NSLog(@"Last Name: %@ %@",lbl_LastName.text);

}

结果:

First Name: XFirst
Last Name: (null) XLast

问题: * 为什么第二个 NSLog 语句打印成这样?

我知道 (null) 的原因,因为我没有在我的 .xib 中为 lbl_Lastname 提供任何引用。但是我不知道在(null)之后打印的原因。

最佳答案

看起来内存中的下一个对象恰好是“XLast”的值。

我推测发生的是:

  • 您创建一个字符串:@"XLast"
  • 程序试图将此值分配给 lbl_LastName.text,但由于 lbl_LastName 为 nil,因此失败。
  • NSLog 正确打印出 lbl_LastName.text 是 ni 的事实,但是由于您有两个 %@,它还会打印出内存中的下一个对象。这恰好是您刚刚分配的字符串:@"XLast"

这可能是未定义的行为,并且每次都可能不一样。

关于ios - 为什么 NSLog 会这样打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22222541/

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