一劳永逸解决:CUICatalog: Invalid asset name supplied

对于一个老旧项目,经过不知道几个前任的项目,Xcode log很大几率会有大量错误CUICatalog:Invalid asset name supplied:

项目中大量输出信息

出现这个问题的原因是[UIImage imageNamed:]方法, name为nil,就着手解决这个问题。

方法一(强烈不推荐),Xcode下符号断点imageNamed ,找到name为nil的地方出手动处理,体力活儿,头大,不过实在闲的没事干,可以用这个方法消磨一下时光

方法二:(强烈推荐)
利用Method Swizzle,替换imageNamed方法,一劳永逸,用时2分钟,直接上代码


#import "UIImage+None.h"
#import 

@implementation UIImage (None)

+(void)load{
    
    Method imageNamed = class_getClassMethod(self,@selector(imageNamed:));
    Method looha_ImageNamed =class_getClassMethod(self,@selector(looha_none_imageNamed:));
    method_exchangeImplementations(imageNamed, looha_ImageNamed);
   
}

+(instancetype)looha_none_imageNamed:(NSString*)name{
 
    if ([JudgeNullObject isExistWithString:name]) {//判断是否为空的方法,不提供,自行搞定
        
      return  [self looha_none_imageNamed:name];
        
    }else{
        
        return nil;
    }
}

@end

然后把.h文件丢到pch文件中,搞定!

你可能感兴趣的:(一劳永逸解决:CUICatalog: Invalid asset name supplied)