Objective-C 调试与运行时机制详解
1. 调试相关
在开发过程中,调试是必不可少的环节。当遇到断言时,意味着程序出现了严重错误。此时,你可能希望收集导致该错误的相关信息,并将其上传到错误跟踪系统,而不是让程序直接崩溃。
可以通过定义 NS_BLOCK_ASSERTS 宏来禁用断言,但这通常只适用于对性能要求极高的代码。因为在大多数情况下,浪费一点 CPU 时间来确保程序处于可定义状态,比在未定义状态下继续运行要好。
以下是一个记录调试信息的示例代码:
- (void)log
{
NSLog(@"%s:%d:%s (%@) Log message", __FILE__, __LINE__, __PRETTY_FUNCTION__, self);
}
在上述代码中,使用了 NSLog() 函数来记录调试信息。当在终端中运行应用程序时,传递给 NSLog() 的消息会发送到标准错误流;在 OS X 的图形应用程序中, NSLog() 会将消息发送到系统控制台;在使用 GNUstep 的 Microsoft Windows 系统中,消息会发送到系统事件监视器。
NSLog() 函数会在格式化字符串前添加日期、时间、进程名称和进程 ID。当在格式化字符串中使用 %@ 格式说明符时,它会使用与调试器相同的方法来获取对象的字符串表示形式。
此外,GNUs
超级会员免费看
订阅专栏 解锁全文
416

被折叠的 条评论
为什么被折叠?



