众所周知,在ObjectiveC中,我们可以将消息发送给nil对象,并且不会抛出nullpointer异常。但它也使得一些bug很难找到。那么在我们这样的debuging中执行代码时,是否有一些方法可以使程序抛出nullpointer异常或崩溃。
NSString * s = nil;
int n = [s intValue];
我希望这段代码可以让程序崩溃,所以我可以更容易地发现这个bug。
答案 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];