美文网首页
iOS-服务器返回空值处理

iOS-服务器返回空值处理

作者: sennnnn | 来源:发表于2018-12-20 15:43 被阅读0次

    Github上别人写的一个Category,叫做NullSafe ,在运行时操作,把这个讨厌的空值置为nil,而nil是安全的,可以向nil对象发送任何message而不会奔溃。这个category使用起来非常 方便,只要加入到了工程中就可以了,你其他的什么都不用做,对,就是这么简单。详细的请去Github上查看;
    https://github.com/nicklockwood/NullSafe

    #import <objc/runtime.h>
    #import <Foundation/Foundation.h>
    
    
    #ifndef NULLSAFE_ENABLED
    #define NULLSAFE_ENABLED 1
    #endif
    
    
    #pragma clang diagnostic ignored "-Wgnu-conditional-omitted-operand"
    
    
    @implementation NSNull (NullSafe)
    
    #if NULLSAFE_ENABLED
    
    - (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
    {
        //look up method signature
        NSMethodSignature *signature = [super methodSignatureForSelector:selector];
        if (!signature)
        {
            for (Class someClass in @[
                [NSMutableArray class],
                [NSMutableDictionary class],
                [NSMutableString class],
                [NSNumber class],
                [NSDate class],
                [NSData class]
            ])
            {
                @try
                {
                    if ([someClass instancesRespondToSelector:selector])
                    {
                        signature = [someClass instanceMethodSignatureForSelector:selector];
                        break;
                    }
                }
                @catch (__unused NSException *unused) {}
            }
        }
        return signature;
    }
    
    - (void)forwardInvocation:(NSInvocation *)invocation
    {
        invocation.target = nil;
        [invocation invoke];
    }
    
    #endif
    
    @end
    

    相关文章

      网友评论

          本文标题:iOS-服务器返回空值处理

          本文链接:https://www.haomeiwen.com/subject/pcwykqtx.html