如何在Objective C中获取nullpointer异常

时间:2015-02-12 09:17:30

标签: objective-c nullpointerexception null

众所周知,在ObjectiveC中,我们可以将消息发送给nil对象,并且不会抛出nullpointer异常。但它也使得一些bug很难找到。那么在我们这样的debuging中执行代码时,是否有一些方法可以使程序抛出nullpointer异常或崩溃。

NSString * s = nil;

int n = [s intValue]; 

我希望这段代码可以让程序崩溃,所以我可以更容易地发现这个bug。

1 个答案:

答案 0 :(得分:0)

您可以对要使用的每个对象使用安全检查方法。

我更喜欢NSObject类的类别

@implementation NSObject (Utility)
    +(id)checkSafe:(id)obj{
        if( obj == nil){
        [NSException raise:@"null pointer" format:@"Reason"];
    }
    return self;
  }
@end

现在您可以在任何nil对象中使用此方法,如下所示。 我使用简单的NSObject本身。沙子使用复制方法使其崩溃。

NSObject* valuenil = nil;
NSObject* valuCopy = [[NSObject checkSafe:valuenil] copy];