Cocoa开发中的异常、信号、错误处理与调试
1. 异常与信号问题
在Cocoa开发里,异常通常用于指出代码中的错误,而非用于流程控制。不过,除了异常,还有一些因对象指针使用不当而引发的问题,这些问题可能导致应用程序收到信号并崩溃。
1.1 未初始化指针问题
在Cocoa中,每个Objective - C对象都是通过指向特定C结构体的指针来引用的。若指针未指向包含有效对象的内存块或为 nil ,就极有可能出现内存访问错误,从而产生一个最终导致应用程序崩溃的“信号”。
Cocoa开发者可能会因以下两种情况无意间导致应用程序因信号而崩溃:
- 向未初始化的对象指针发送消息 :在Objective - C方法中声明一个新的局部指针变量时,默认情况下不能指望它会自动指向 nil 或其他无害的东西。它可能指向一个完全不合适的内存地址,甚至是未映射到系统中的地址。
以下是一个示例代码:
- (void)uninitializedObject {
NSMutableString *string;
[string appendFormat:@"foo"];
}
要查看此问题的影响,可在 applicationDidFinishLaunching: 方法中添加 [self uninitializedObject]; ,然后进行构建和调试。程序会停止运行,在Xc
超级会员免费看
订阅专栏 解锁全文
16

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



