26、Cocoa开发中的异常、信号、错误处理与调试

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值