我刚开始学习iOS开发。在我的代码中使用了一些NSLog
语句,但它们似乎没有输出到任何地方。我的应用程序正在使用调试配置,并且我正在从Xcode中的iPhone模拟器运行我的应用程序。我已经检查了Xcode控制台(在Run菜单下)以及我的Mac上的Console.app,但是没有任何输出。
可能的问题是什么?
我刚开始学习iOS开发。在我的代码中使用了一些NSLog
语句,但它们似乎没有输出到任何地方。我的应用程序正在使用调试配置,并且我正在从Xcode中的iPhone模拟器运行我的应用程序。我已经检查了Xcode控制台(在Run菜单下)以及我的Mac上的Console.app,但是没有任何输出。
可能的问题是什么?
请确保已经激活了您的控制台
,您可以按以下步骤操作:
NSLog()
在模拟器上的输出确实会显示在Console Mac OS X应用程序中。
前往All Messages
,然后根据您的应用程序名称进行过滤以摆脱杂质,并再次运行。如果在程序执行期间实际上命中了NSLog代码,则会在输出中看到它。
像这样使用NSLog()
:
NSLog(@"The code runs through here!");
或者像这样 - 使用占位符:
float aFloat = 5.34245;
NSLog(@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat);
在NSLog()
中,可以像这样使用:+ (id)stringWithFormat:(NSString *)format, ...
float aFloat = 5.34245;
NSString *aString = [NSString stringWithFormat:@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat];
float aFloat = 5.34245;
int aInteger = 3;
NSString *aString = @"A string";
NSLog(@"This is my float: %f \n\nAnd here is my integer: %i \n\nAnd finally my string: %@", aFloat, aInteger, aString);
从评论中移动
你确定执行了带有NSLog
的那行代码吗?试着在main.m中自动释放池分配后插入NSLog
。
真的很奇怪。只是为了实验而已:尝试将NSLog输出重定向到某个文件中,就像这样:
freopen ("/out","w", stderr);
NSLog(@"1234567890");
stderr
出了问题。
NSLog
的那一行被执行了吗?试着在main.m
中的自动释放池分配后立即插入NSLog
。 - hoha