gpt4 book ai didi

objective-c - 为什么 NSLog 显示不正确的 int 和 char?

转载 作者:行者123 更新时间:2023-12-02 22:22:05 25 4
gpt4 key购买 nike

我认为我做的一切都正确,但 NSLog 输出与悬停在变量上显示的正确值不匹配。综合和点符号工作正常。
将鼠标悬停在所有变量上会显示正确的值,如//注释中所示。但是 NSlog 在 Debugger 控制台中显示不正确;输出也显示在//注释中。

在测试中,屏幕类的一个实例:

{   int i;
char j;
}

在 AppDelegate 中:

test.i = 10;    // hover shows 10        OK
test.j = 'z'; // hover shows 122 'z' OK
NSLog(@"i= %i, j= %c"),test.i, test.j;// hover shows 10,122 'z'OK
but Debugger Console shows i= 2097168, j= $


int k = 10; // hover shows 10 OK
char l = 'z'; // hover shows 122 'z' OK
NSLog(@"k= %i, l= %c"),k, l; // hover shows 10,122 'z'OK
but Debugger Console shows k= 6055, l= ,

我错过了什么?或者这是 Xcode 3.2.4、OSX 10.6 中的真正错误?

最佳答案

在传递格式参数之前,您已经关闭了 NSlog() 的括号。改变这个:

NSLog(@"i= %i, j= %c"),test.i, test.j;

为此:

NSLog(@"i= %i, j= %c",test.i, test.j);

除了在函数调用中分隔参数外,逗号也可用于分隔语句。您的尝试等同于:

NSLog(@"i= %i, j= %c"); // An NSLog with no args, will print garbage.
test.i; // A valid, though pointless, statement.
test.j; // A valid, though pointless, statement.

关于objective-c - 为什么 NSLog 显示不正确的 int 和 char?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13577855/

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