问题标签 [nslog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1673 浏览

objective-c - 如何在 NSTextView 中轻松重定向控制台输出?

假设您有一个 Cocoa 应用程序的代码,它通过 NSlogs 和 printfs 将自己的消息记录到控制台输出。我的目标是将所有这些输出重定向到 NSView 中的单独 NSWindow 中。

我怎样才能以某种方式实现这一目标

  • 最小化要重写的代码量
  • 可以恢复
  • 最大限度地重用书面代码

(通常的软件工程指南)?

0 投票
1 回答
942 浏览

xcode - Xcode - HitTesting 返回 3 次

我有一个 UIView 子类,其中 hitTest: withEvent: 被覆盖。每次命中测试注册时,视图都会记录其标签。

例如:点击

控制台:您触摸视图:3 您触摸视图:3 您触摸视图:3

我的问题:为什么它会做三遍?我需要它来触发 NSLog 以外的东西,我担心它也会触发 3 次。我可以轻松解决三重触发问题,但我想知道是否有更好的解释。

0 投票
3 回答
1329 浏览

iphone - 自由使用 NSLog 是否有成本?

作为一个新手程序员,我发现了NSlog. 它对调试非常有帮助(与 一起NSZombieEnabled)。

当它打印出所有这些东西时,我可以看到模拟器上的明显性能受到影响。我不认为我在设备上看到任何这样的打击,但我不确定。

那么,留下所有东西需要花费什么NSLogs吗?它是否在设备上使用更多内存?还是编译器只是忽略它们,就像我为设备编译时那样做注释?

编辑:

根据来自的建议,这是我实施的rano.

在我的App_Prefix.pch文件中,我添加了:

然后在我的Project Info检查器中,对于Debug配置,在标题下,GCC 4.2 - Preprocessing,我将值添加DEBUG到名为的顶部条目中,Preprocessor Macros.

像魅力一样工作 -DLog当我构建一个Debug版本并ALog始终输出时输出。

0 投票
2 回答
1660 浏览

objective-c - NSLog 不工作

我见过的最奇怪的事情.. NSLog 在基于奇怪事物的方法中失败了。这是代码:

在 Board.m 中:

现在发生的情况是,decode: 中的任何 NSLog 语句或从 decode: 调用的方法都不会记录到控制台。但是,调用 decode: 之前和之后的 NSLog 工作,并且 NSLog 周围的其余代码执行得很好。我发现我可以通过注释掉 [coords addObject:coord]; 来让所有 NSLog 语句正常工作。该语句出现它所影响的 NSLog 语句之后。我还发现我可以通过重新排列 testBoard 中的几行来让 NSLog 工作:像这样:

这看起来很奇怪..一个 xcode 尼斯湖水怪浮出水面?!

0 投票
1 回答
602 浏览

iphone - 在 iPhone 上进行 TRACE 记录

我是 iPhone 的新手,并试图了解在应用程序加载期间调用的方法序列。

经过一番谷歌搜索,我发现这似乎足够了: NSLog(@"Begin %@ initWithNibName", [[self class]description]); 但是有没有办法插入方法名称而不是自己输入?有没有更好的 TRACE log 命令???

另外,我在网上找到了这个:

但我不知道它的作用以及如何使用它。我试过:-(id) init { METHOD_LOG("init"); …… }

但不编译。

0 投票
3 回答
641 浏览

objective-c - 代码仅在我 NSLog 某些值时才有效 - 但为什么呢?

我正在编写一个简单的QR 码生成器(只是为了好玩和学习一些 Obj-C),并且我正在跟踪连接的“模块”(即构成 QR 码的黑色方块)的轮廓。这是为了获得更好的向量输出,而不是简单地为每个模块制作一堆矩形。

长话短说,我的大纲跟踪代码有效——但前提是我确保在特定位置调用 NSLog!如果我删除NSLog-call,代码会循环!除了记录,我实际上什么都不做。我记录什么并不重要;我只需要调用 NSLog 否则事情就会中断。

跟踪算法很简单:围绕连接模块的形状顺时针移动。当你碰到一个角落时,向右转,直到你回到形状的轮廓。再次到达起点时停止。该形状可以有两个共享一个角点的模块。因此,跟踪循环将两次命中该点。这是预期的,并且代码可以正确处理它 -如果我调用NSLog.

否则,代码会在第一次看到某个点时说它是一个角,而第二次看到它不是一个角,这会导致跟踪循环。检测某个东西是否是角点不依赖于除了点的 x 和 y 坐标以及模块对象数组之外的任何东西——但是在跟踪进行时模块和数组都不会改变,所以给定相同的 x, y 你应该总是得到相同的结果。它确实如此——如果我打电话给NSLog.

如果没有NSLog,坐标(例如(10,9))是角上的瞬间,片刻之后(10,9)突然被识别为角。但是使用-call NSLog,(10,9)每次都被正确地视为角点。

再说一遍:我完全没有改变;我只是记录一些东西——任何东西!突然间它起作用了。这就像说 2 == 2 是真还是假,除非我告诉它记录 2 和 2,在这种情况下 2 == 2 总是正确的,因为它应该是。

这是片状代码。脱离上下文很难理解,但是有很多上下文,所以我希望这已经足够了。一切都是整数(没有模糊浮点值)。

如果有人能告诉我为什么 NSLog 可以使代码工作(或者更确切地说:为什么使用 NSLog 会使工作代码中断),我很高兴听到它!我希望有人能理解它。

0 投票
5 回答
8142 浏览

ios - NSLog 的奇怪行为

我正在使用 NSLog 来检查 UITextView。我的代码中有以下日志记录语句:

在控制台的输出中,我得到以下信息:

输出的第一行,因为它包含 'frame = (0 0; 320 387)' 位,让我相信 UITextView 的 frame 变量已全部设置。但是为什么在这种情况下接下来的两行显示为 null 呢?他们不应该转储框架的值吗?

提前致谢

0 投票
3 回答
300 浏览

nsstring - 从 NSMutableArray 构建 NSstring

我花了几个小时试图弄清楚这个问题,我的眼睛受伤了——我已经在网上寻找了很长一段时间的答案(说出多少会很尴尬......)。我要做的就是在 anExpression 上使用 for-in 循环进行枚举,这是一个包含 NSNumbers 和 NSStrings 的 NSMutableArray。我的变量 ans 的 NSLog 打印返回一个空字符串。我究竟做错了什么?

0 投票
2 回答
524 浏览

iphone - 如何在 CGContextDrawPDFPage 生成的某些 PDF 上禁用控制台日志记录

我对某些 PDF 的日志记录有问题,以控制台一些节点号和字体系列,这使我的应用程序变慢。有人知道如何禁用日志记录吗?

我用过:CGContextDrawPDFPage(context, page);

这不会发生在所有 PDF 上,另一个 SO 问题中的一个解释是当渲染器不知道 PDF 使用的字体时会发生日志记录。我使用的 PDF 是http://dl.dropbox.com/u/861361/test.pdf

仅供参考,我使用的是 3.2 版 iOS (iPad)

0 投票
3 回答
78761 浏览

objective-c - NSInteger 的 NSLog/printf 说明符?

ANSInteger在 32 位平台上是 32 位,在 64 位平台上是 64 位。是否存在NSLog始终与 的大小匹配的说明符NSInteger

设置

  • Xcode 3.2.5
  • llvm 1.6 编译器(这很重要;gcc 不这样做)
  • GCC_WARN_TYPECHECK_CALLS_TO_PRINTF打开

这让我有些悲伤:

对于 32 位代码,我需要说明%d符。但是,如果我使用说明%d符,则在编译 64 位时会收到警告,建议我改用该说明符%ld

如果我使用%ld匹配 64 位大小,则在编译 32 位代码时,我会收到一条警告,建议我%d改用它。

如何同时修复两个警告?有没有我可以使用的说明符?

这也影响[NSString stringWithFormat:][[NSString alloc] initWithFormat:]