草庐IT

objective-c - NSLog中的前缀是什么意思?

当我使用NSLog时,我得到类似于以下的输出:2012-01-2417:05:32:860App[21856:71939]{这里记录日志}我知道“2012-01-2417:05:32:860”是日期,“应用”是应用名称,但我不知道“[21856:71939]”是什么意思。谁能告诉我这是什么以及它是在哪里生成的?我想要做的就是让日志记录整齐排列,以便于阅读,但是“[21856:71939]”的数字变化足以搞乱任何对齐尝试。如果我知道“[21856:71939]”中的数字是如何生成的,我可以根据需要添加空格以使其正确排列,但这是我目前唯一的想法。任何帮助将不胜感激:)

ios - 如何在整个应用程序中禁用 NSLog?

我想在应用程序的所有实例中禁用NSLog()。我找到了一些这样做的代码:#ifndefDEBUG#defineNSLog//#endif但是将此代码添加到每个文件并不是一个好主意。我怎样才能让它更容易? 最佳答案 Xcode有一个预编译的头文件({project-name}-Prefix.pch默认情况下在SupportingFiles组中),这是放置将在每个文件中使用的代码的好地方该项目。要进一步改进日志消息本身,请参阅IsittruethatoneshouldnotuseNSLog()onproductioncode?.

ios - 使用 Cocoa Lumberjack 日志框架立即刷新日志语句,NSLog 刷新到控制台的方式

许多iOS开发者发现了CocoaLumberjackLoggingframework满足简单的NSLog语句没有的需求。这让人想起Java世界中的Log4J。无论如何,我已经为Lumberjack编写了自己的自定义格式化程序,但我没有看到任何关于如何立即刷新日志语句的文档。例如,如果我在调试器中运行并遇到NSLog()语句,它会立即将日志语句刷新到控制台。这就是我想从Lumberjack中的DDLogVerbose()调用中获得的行为。现在,我返回并将这些语句更改为NSLog()语句,如果我希望它们在我调试一段代码时立即吐出。由于Lumberjack如此健壮,我不得不认为有一种方法可以

objective-c - 如何在程序运行时 NSLog 调用堆栈?

有没有办法获取调用堆栈?假设我有一个被许多其他函数调用的函数,但我需要知道是谁调用了它。谢谢 最佳答案 当然有。如果可以使用Cocoa框架:NSLog(@"%@",[NSThreadcallStackSymbols]);(Documentation.)如果不能使用:#includeintsize=256;void*stack[size];size=backtrace(stack,size);char**syms=backtrace_symbols(stack,size);for(inti=0;i(Documentation.)

ios - Xcode 8 不显示整个 NSLog 输出

今天升级到Xcode8GM后,我注意到NSLog没有将整个日志消息打印到控制台。当针对下载大量信息的API工作时,这一点尤其明显,例如RESTAPI从数据库下载所有产品,它只显示第一个产品的前30个键,其余信息被剪掉......我正在打印数组和字典,如果这有什么不同的话。NSDictionary*allProducts=responseFromAPI;NSLog(@"Allproducts:%@",allProducts);有没有其他人注意到这一点?有人知道如何解决这个问题吗? 最佳答案 正如@Lion在他的评论中所述,最简单的方法

iphone - 如何在 iOS 上使用 NSLog 打印字符串常量

我有一个这样定义的字符串常量:#definekMyString@"Thisismystringtext!";在代码的某处,我想像这样用NSLog打印出这段代码:NSLog(@"Thisisit:%@",kMyString);但是得到一个构建错误:Expectedexpression。我已经看过Apple的FormatSpecifiers但想不通。有人可以向我解释一下如何做到这一点吗?谢谢! 最佳答案 您应该从kMyString的定义中删除;:#definekMyString@"Thisismystringtext!"你这样做的方式相

objective-c - Clean NSLog - 没有时间戳和程序名称

我几乎用这段代码完成了一个干净的NSLog:#defineNSLog(FORMAT,...)printf("%s\n",[[NSStringstringWithFormat:FORMAT,__VA_ARGS__]UTF8String]);如果我这样做,效果很好:NSLog(@"Show%@message",@"this");但是,如果我使用它会失败NSLog(@"Oneargument");因为__VA_ARGS__什么都不是,所以产生printf("%s\n",[[NSStringstringWithFormat:@"Oneargument",]UTF8String]);所以,问题是

ios - 设置 "wait for executable to be launched"时 NSLog 不工作

我只是按照主题行探索调试。我注意到虽然这很容易工作,但NSLog没有输出,但确实会中断。这没有帮助;)..我在编辑方案窗口中没有看到任何明显的选项。这是为了测试推送,但首先我只是手动启动应用程序以确保进程正常运行(等待应用程序手动启动等)。感谢任何提示.. 最佳答案 如果您让进程正常启动,那么日志将已经连接到ASL。调试器没有一个好的方法来在事后重新路由此连接。您必须在设备控制台中查看日志。在Xcode6中,选择Windows->Devices,然后在内容窗口底部会出现一个小的显示小部件,它将显示设备控制台。

iphone - 使用仪器时如何从控制台应用程序查看 NSLog()

我正在使用工具进行分配,但想查看我的NSLog消息。在另一篇文章中,他们提到要查看/Applications/Utilities/Console中的消息。我似乎无法发现他们中的任何一个。打开控制台应用程序后,您会看哪里? 最佳答案 您可以使用XcodeOrganizer查看设备的控制台。在Xcode6中,“设备”选项卡已从管理器中移除到它自己的窗口中。要查看控制台日志,您现在必须单击设备信息左下角的小三角形。 关于iphone-使用仪器时如何从控制台应用程序查看NSLog(),我们在St

ios - 美化 NSArray & NSDictionary 的 NSLog

我正在处理深度嵌套的NSArray和NSDictionary,至少可以说这非常耗时。[dataobjectatindex:0]valueForKey:@"blah"]等等等等有谁知道一个不错的iOS类别来递归记录结构、突出显示类型并显示值?可能要求有点高,但你永远不知道:) 最佳答案 嗯。简单NSLog(@"%@",dictionaryYouWantToPrint);为我输出以下结果:{id=1;matchCount=0;matchPattern=abcdef;number="123456";sessionID=5;status=U