1、最暴力的方法。
牛逼的老外写了一个Category,叫做NullSafe ,在运行时操作,把这个讨厌的空值置为nil,而nil是安全的,可以向nil对象发送任何message而不会奔溃。这个category使用起来非常方便,只要加入到了工程中就可以了,你其他的什么都不用做,对,就是这么简单。详细的请去Github上查看;
https://github.com/nicklockwood/NullSafe,
没错,就是加入工程,编译下,不需要做任何的操作,老外就是牛。
2、
在nslog中其实可以很容易发现,nil和NULL的区别的,在打印的时候nil出来是(null), NULL出来是<null>,看出来了吧。
于是扩展了一个类别:NSDic
- (id)objectForKeySafe:(id)aKey {
id obj=[self objectForKey:aKey];
if ((NSNull *)obj == [NSNull null]) {
return nil;
}
return obj;
}