0

哪一个是最受青睐的目标 C 异常处理?NSError 指针,它在其中提供带有消息详细信息的指针或@throws,它强制调用者处理异常并显示一些优雅的消息。谢谢。

并且请让我知道哪个是内存效率高的。

4

1 回答 1

3

与 Java 不同,在 Objective-C 中,异常仅用于处理不可恢复的状态。这意味着,例如,您不会捕获EXC_BAD_ACCESS,而是调试您的应用程序并纠正问题。

Java 异常的 Objective-C 等价物是NEError和空指针模式。例如,如果格式化程序因为字符串不代表数字而无法将字符串格式化为数字,则返回nil。还有一种格式化数字的方法,该方法采用NSError双指针返回错误描述。

因此,要处理错误,您通常会实现如下方法:

- (id) object : (out NSError**) error
{
    BOOL ok= ... 
    if(!ok)
    {
        if(error)
            *error= ...
        return nil;
    }
    return someObject;
}
于 2013-07-09T21:48:43.063 回答