【发布时间】:2011-10-24 11:05:47
【问题描述】:
我困惑了很久。在我的项目中,nslog 是无效的,比如:
NSArray *arr = [NSArray arrayWithObjects:@"a",@"b",nil];
NSLog(@"%@",arr);
在控制台中没有结果。在调试器中,我可以在本地看到arr,当我选择:“将描述打印到控制台”时,它在控制台中显示为:
Printing description of arr:
(gdb)
在我的项目中,我使用了一些用 C&C++ 构建的库,并将它们添加为框架。我发现在我创建一个 pthread 并使用 lib 做某事后,NSlog 总是变得无效。 我对此一无所知,可以提供任何提示吗?
谢谢!
【问题讨论】:
-
所以
NSLog在主线程中工作,但在其他线程中不工作?还是到处都失败了? -
@Deepak,在我使用 lib 之前,
NSLog在主线程和辅助线程中都能正常工作。当我使用 lib 创建 pthread 时,NSLog 在任何地方都有效。最重要的是在调试器中我可以看到变量,但不能打印到控制台。 -
如果将
NSLog()替换为fprintf()到stderr是否有效? -
@Bavarious,它也失败了。我的代码:'code'fprintf(stderr, "c"); (对吧?)。
-
应该可以的。我不确定问题的原因是什么。可能是库对
stderr做了一些坏事,从而阻止您的代码将其用于输出。