我认为我正在做的一切正确,但NSLog输出与悬停在变量上显示的正确值不匹配.合成和点符号正常工作.
将鼠标悬停在所有变量上会显示正确的值,如//注释中所示.但是,在调试器控制台中,NSlog显示不正确; 输出也显示在//注释中.
在测试中,Screen类的一个实例:
{ int i;
char j;
}
Run Code Online (Sandbox Code Playgroud)
在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= ,
Run Code Online (Sandbox Code Playgroud)
我错过了什么?或者这是Xcode 3.2.4,OSX 10.6中的真正错误?
NSlog()在传递格式参数之前,您已经关闭了括号.改变这个:
NSLog(@"i= %i, j= %c"),test.i, test.j;
Run Code Online (Sandbox Code Playgroud)
对此:
NSLog(@"i= %i, j= %c",test.i, test.j);
Run Code Online (Sandbox Code Playgroud)
除了在函数调用中分隔参数之外,逗号还可用于分隔语句.您的尝试相当于:
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.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2672 次 |
| 最近记录: |