一勞永逸解決:CUICatalog: Invalid asset name supplied

對(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文件中,搞定!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容