- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您是否更愿意推荐使用 NSLog 或 Xcode 提供的用于断点调试的日志记录功能?
使用 NSLog 有什么优势吗?
对于在客户设备上运行的应用程序:是否有一种简单的方法可以将 NSLog 或等效输出记录到文件或网络服务中?
最佳答案
就个人而言,我建议同时使用日志记录(通过 NSLog
)和设置断点。或许您的问题是什么时候应该使用其中一种与另一种。
当您想进入代码并逐步观察发生了什么时,断点非常有用。逐步执行代码的一些优点包括能够检查您喜欢的任何变量以及能够通过 gdb 执行代码(有关 gdb 技巧的更多信息,请参见 Objective-C Debugging tips in Xcode4?)。断点也很方便,因为您不必重新编译和添加日志语句。
另见 How to set a conditional breakpoint in Xcode based on an object string property?
日志非常适合您一直想查看的信息。例如,一个下载资源的应用程序可能想要记录下载的每个资源(url 和您可能需要的任何其他信息)。我喜欢使用名为 DLOG
的宏来创建条件日志,这样我就可以看到更详细的开发日志,但在发布版本中删除这些日志。
#ifdef DEBUG
#define DLog(...) NSLog(__VA_ARGS__)
#else
#define DLog(...) /* */
#endif
这只会为 DEBUG
构建发出 NSLog 消息。您可以添加类似的功能来促进对应用程序的复杂部分进行详细日志记录的形式。当我调试拖动问题时,我发现使用日志来观察正在发生的事情(而不是逐步检查所有内容)通常会很好。但是,当我完成功能开发或修复问题后,我肯定不再对这些日志感兴趣,所以我通常会有条件地显示这些日志,以便以后遇到问题时我可以再次查看日志.
关于objective-c - NSLog 与 Xcode 断点记录和创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379834/
我是 Mac OS 编程的新手。我想知道 NSLog 在哪里定义? 最佳答案 在NSObjCRuntime.h文件中: FOUNDATION_EXPORT void NSLog(NSString *f
我不明白这里发生了什么。我有一个按钮连接到 AppDelegate 中的以下操作: - (IBAction)openWindow:(id)sender { self.winCon = [[NS
#import int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePo
我有一个 Xcode 项目,我已经工作了几个月了。我从来没有遇到过 NSLog 问题,但升级到 Xcode 4.2 后,控制台上不会记录任何内容。我什至尝试将其放入 viewDidLoad 中:
首先,当我使用 nslog 记录数组的内容时,为什么数组中的某些对象(所有字符串)都有引号,而有些则没有? 日志将如下所示: "Item 1", "item 2", item3, "item4" 这引
我很不幸地提交了一个 NSLog 仍然处于事件状态的应用程序。它很少触发,但我想知道我的应用程序因此被拒绝的可能性有多大? 我不是在问如何抑制 NSLogs。我已经知道该怎么做了。它只是一个错误进入的
我正在尝试使用 NSLog 来打印控制台消息。问题是有时我在调用它时收到“EXC_BAD_ACCESS”错误 -(void)willRotateToInterfaceOrientation:(UIIn
我的 Mac OS X 应用程序中有以下代码行: NSLog(@"number of items: %ld", [urlArray count]); 我收到警告:“格式指定类型‘long’,但参数类型
与 NSLog 功能最接近的 Core Foundation 函数是什么? 最佳答案 CFShow() 类似,但没有前缀。或者,正如 wbyoung 所说,使用 NSLog()。如果您不想使用 Obj
NSNumber *weekNum = [dictionary valueForKey:@"inSeasonFor"]; NSDecimalNumber *newWeekNum = ([weekNum
我目前正在开发一个低功耗蓝牙应用程序,我想在其中使用 NSLog 来打印我收集到的信息。 这是我在 didUpdateValueForCharacteristic 方法末尾使用的代码,此时所有属性都已
当我尝试用它NSLog我的图像时; NSLog([images description]); 这出现了: 2012-06-05 10:31:38.801 Project1[1180:1a303] (
我如何准确地检测对象的坐标,例如名为“content”的 View ,并将其输出到日志中?感谢您的帮助! 最佳答案 你也可以这样做 NSLog(@"position: %@",NSStringFrom
-(void) print { NSLog(@"%i/%i", numberator, denominator); } Fraction *myFraction = [Fraction n
我有一部连接到 Xcode 的 iPhone。我在主页上有一个 NSLog(@"test")。当我从 Xcode 构建(运行)我的应用程序时,我看到它正在调试区域打印 test。 然后...我从设备屏
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improv
这个问题在这里已经有了答案: 关闭 10 年前。
我是 Objective-C 的新手,我开始学习简单的东西。在本例中,我想使用 * 符号创建一个 金字塔。 问题:每次打印 * 时,它都包含一个换行符。我怎样才能摆脱它来创建金字塔外观?我以为我必须添
我在 IBAction 中有以下代码。我想测量 AVSpeechSynthesizer 运行一个方向列表所花费的确切时间。但是,executionTime 会立即记录,而不是在循环结束时记录(返回不到
我想从两个日期之间添加的核心数据中检索所有条目。我正在使用 NSPredicate。由于我没有得到正确的结果,我尝试记录日期。它显示了以前的日期。谷歌搜索了一段时间后,我添加了 [dateFormat
我是一名优秀的程序员,十分优秀!