问题标签 [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.
objective-c - 如何在 NSTextView 中轻松重定向控制台输出?
假设您有一个 Cocoa 应用程序的代码,它通过 NSlogs 和 printfs 将自己的消息记录到控制台输出。我的目标是将所有这些输出重定向到 NSView 中的单独 NSWindow 中。
我怎样才能以某种方式实现这一目标
- 最小化要重写的代码量
- 可以恢复
- 最大限度地重用书面代码
(通常的软件工程指南)?
xcode - Xcode - HitTesting 返回 3 次
我有一个 UIView 子类,其中 hitTest: withEvent: 被覆盖。每次命中测试注册时,视图都会记录其标签。
例如:点击
控制台:您触摸视图:3 您触摸视图:3 您触摸视图:3
我的问题:为什么它会做三遍?我需要它来触发 NSLog 以外的东西,我担心它也会触发 3 次。我可以轻松解决三重触发问题,但我想知道是否有更好的解释。
iphone - 自由使用 NSLog 是否有成本?
作为一个新手程序员,我发现了NSlog
. 它对调试非常有帮助(与 一起NSZombieEnabled
)。
当它打印出所有这些东西时,我可以看到模拟器上的明显性能受到影响。我不认为我在设备上看到任何这样的打击,但我不确定。
那么,留下所有东西需要花费什么NSLogs
吗?它是否在设备上使用更多内存?还是编译器只是忽略它们,就像我为设备编译时那样做注释?
编辑:
根据来自的建议,这是我实施的rano.
在我的App_Prefix.pch
文件中,我添加了:
然后在我的Project Info
检查器中,对于Debug
配置,在标题下,GCC 4.2 - Preprocessing,
我将值添加DEBUG
到名为的顶部条目中,Preprocessor Macros.
像魅力一样工作 -DLog
当我构建一个Debug
版本并ALog
始终输出时输出。
objective-c - NSLog 不工作
我见过的最奇怪的事情.. NSLog 在基于奇怪事物的方法中失败了。这是代码:
在 Board.m 中:
现在发生的情况是,decode: 中的任何 NSLog 语句或从 decode: 调用的方法都不会记录到控制台。但是,调用 decode: 之前和之后的 NSLog 工作,并且 NSLog 周围的其余代码执行得很好。我发现我可以通过注释掉 [coords addObject:coord]; 来让所有 NSLog 语句正常工作。该语句出现在它所影响的 NSLog 语句之后。我还发现我可以通过重新排列 testBoard 中的几行来让 NSLog 工作:像这样:
这看起来很奇怪..一个 xcode 尼斯湖水怪浮出水面?!
iphone - 在 iPhone 上进行 TRACE 记录
我是 iPhone 的新手,并试图了解在应用程序加载期间调用的方法序列。
经过一番谷歌搜索,我发现这似乎足够了: NSLog(@"Begin %@ initWithNibName", [[self class]description]); 但是有没有办法插入方法名称而不是自己输入?有没有更好的 TRACE log 命令???
另外,我在网上找到了这个:
但我不知道它的作用以及如何使用它。我试过:-(id) init { METHOD_LOG("init"); …… }
但不编译。
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 会使工作代码中断),我很高兴听到它!我希望有人能理解它。
ios - NSLog 的奇怪行为
我正在使用 NSLog 来检查 UITextView。我的代码中有以下日志记录语句:
在控制台的输出中,我得到以下信息:
输出的第一行,因为它包含 'frame = (0 0; 320 387)' 位,让我相信 UITextView 的 frame 变量已全部设置。但是为什么在这种情况下接下来的两行显示为 null 呢?他们不应该转储框架的值吗?
提前致谢
nsstring - 从 NSMutableArray 构建 NSstring
我花了几个小时试图弄清楚这个问题,我的眼睛受伤了——我已经在网上寻找了很长一段时间的答案(说出多少会很尴尬......)。我要做的就是在 anExpression 上使用 for-in 循环进行枚举,这是一个包含 NSNumbers 和 NSStrings 的 NSMutableArray。我的变量 ans 的 NSLog 打印返回一个空字符串。我究竟做错了什么?
iphone - 如何在 CGContextDrawPDFPage 生成的某些 PDF 上禁用控制台日志记录
我对某些 PDF 的日志记录有问题,以控制台一些节点号和字体系列,这使我的应用程序变慢。有人知道如何禁用日志记录吗?
我用过:CGContextDrawPDFPage(context, page);
这不会发生在所有 PDF 上,另一个 SO 问题中的一个解释是当渲染器不知道 PDF 使用的字体时会发生日志记录。我使用的 PDF 是http://dl.dropbox.com/u/861361/test.pdf
仅供参考,我使用的是 3.2 版 iOS (iPad)
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:]
。