处理服务器返回的 null

试了下,可行,有带验证,别人的   http://blog.txx.im/blog/2014/03/28/nsnull-category/

使用:复制粘贴下面的代码到工程的请求类里, 然后再去取null的字段,tmd就没蹦,太神奇了

#define NSNullObjects @[@"",@0,@{},@[]]

@interface NSNull (InternalNullExtention)
@end



@implementation NSNull (InternalNullExtention)


- (NSMethodSignature*)methodSignatureForSelector:(SEL)selector
{
    NSMethodSignature* signature = [super methodSignatureForSelector:selector];
    if (!signature) {
        for (NSObject *object in NSNullObjects) {
            signature = [object methodSignatureForSelector:selector];
            if (signature) {
                break;
            }
        }

    }
    return signature;
}

- (void)forwardInvocation:(NSInvocation *)anInvocation
{
    SEL aSelector = [anInvocation selector];

    for (NSObject *object in NSNullObjects) {
        if ([object respondsToSelector:aSelector]) {
            [anInvocation invokeWithTarget:object];
            return;
        }
    }

    [self doesNotRecognizeSelector:aSelector];
}
@end
posted @ 2015-03-04 17:35  lol挂  阅读(319)  评论(0)    收藏  举报