美文网首页
NSMethodSignature signatureWithO

NSMethodSignature signatureWithO

作者: Superman168 | 来源:发表于2022-11-16 17:10 被阅读0次

    Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSMethodSignature signatureWithObjCTypes:]: type signature is empty.' terminating with uncaught exception of type NSException

    这个错误乍一看以为方法交换的错误,旧方法和新方法交换的崩溃,旧方法不存在所以崩溃了,所以解决方法是先判断当前是否存在这个方法,存在再交换,不存在先添加再交换,有可能是这样吧?因为我遇到的不是这个问题。

    我的问题是在iOS15,16上面是没有问题,13和12上面有问题,一直崩溃,第一次是这个问题:

    response[@"code"] integerValue];

    后台没有返回code直接就崩溃了,但是15,16是没问题,所以就做了处理

    给字典扩展了判空的方法

    /** 判断value是否为null */
    -(BOOL)isNullValueForKey:(NSString*)key{
        // judge nil
        if(![self objectForKey:key]){
            return NO;
        }
        // judge NSNull
        id obj = [self objectForKey:key];
        
        BOOL isNull = [obj isEqual:[NSNull null]];
        return isNull;
    }
    

    第二次崩溃也是类似的问题,只不过value是整数,但是iOS控制台获取到的是long型,就按照long型处理了:

      if([dic isNullValueForKey:@"xxx"]){
          return;
      }
      long skipType = [dic[@"xxx"] longValue];
    

    暂时这么处理的,有问题继续补充

    相关文章

      网友评论

          本文标题:NSMethodSignature signatureWithO

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