Cocoa开发中的异常、信号、错误处理与调试
在Cocoa开发中,异常、信号、错误等情况的处理是保证程序稳定运行的关键。下面我们将详细介绍这些方面的知识。
1. 比异常更糟糕的情况:信号导致的程序崩溃
在Cocoa中,Objective - C对象通过指向特定C结构体的指针来引用。如果指针没有指向包含有效对象的内存块或者为 nil ,就很可能会发生内存访问错误,进而产生“信号”,最终导致应用程序崩溃。
Cocoa开发者通常会因以下两种情况无意中导致信号使应用崩溃:
1.1 向未初始化的对象指针发送消息
在Objective - C方法中声明一个新的局部变量指针时,默认情况下不能指望它自动指向 nil 或其他无害的东西,它可能指向完全不合适的内存地址。例如以下代码:
- (void)uninitializedObject {
NSMutableString *string;
[string appendFormat:@"foo"];
}
上述代码声明了一个指向 NSMutableString 的指针,但没有实际创建字符串。当尝试调用 appendFormat: 方法时,接收者不是一个有效的对象。如果在 applicationDidFinishLaunching: 方法中添加 [self uninitializedObject]; 并
超级会员免费看
订阅专栏 解锁全文
17

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



