對(duì)于一個(gè)老舊項(xiàng)目,經(jīng)過(guò)不知道幾個(gè)前任的項(xiàng)目,Xcode log很大幾率會(huì)有大量錯(cuò)誤CUICatalog:Invalid asset name supplied:

項(xiàng)目中大量輸出信息
出現(xiàn)這個(gè)問(wèn)題的原因是[UIImage imageNamed:]方法, name為nil,就著手解決這個(gè)問(wèn)題。
方法一(強(qiáng)烈不推薦),Xcode下符號(hào)斷點(diǎn)imageNamed ,找到name為nil的地方出手動(dòng)處理,體力活兒,頭大,不過(guò)實(shí)在閑的沒(méi)事干,可以用這個(gè)方法消磨一下時(shí)光
方法二:(強(qiáng)烈推薦)
利用Method Swizzle,替換imageNamed方法,一勞永逸,用時(shí)2分鐘,直接上代碼
#import "UIImage+None.h"
#import <objc/runtime.h>
@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文件中,搞定!