<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      iOS 子工程(下沉組件 私有庫) 調(diào)用文件、圖片 等資源 方法

      發(fā)現(xiàn)問題:在子工程里面 使用 

      [[NSBundle mainBundle] pathForResource:ofType:]  不能找到目標資源文件

      原因

      [[NSBundle mainBundle] pathForResource:ofType:] 是獲取主程序包(Main Bundle)中資源文件路徑的方法。主程序包是指你的應(yīng)用程序本身,而不包括子工程或子項目。

      那么要在子工程中獲取資源文件路徑,就要使用相對于子工程 bundle 的路徑。這時,我們應(yīng)該使用子工程 bundle 的路徑來進行資源文件的獲取。

      方法

      使用bundleForClass: 方法來獲取子工程 bundle,然后使用這個 bundle 來獲取資源文件的路徑。這樣就能夠在子工程中獲取資源文件的路徑了。  

       

      NSBundle *subprojectBundle = [NSBundle bundleForClass:[self class]];//類對象,通過這個參數(shù)來獲取特定類所在的 bundle,以便在該 bundle 中定位資源文件。
      NSString *resourcePath = [subprojectBundle pathForResource:@"ResourceFileName" ofType:@"png"];
      
      //等價 NSString *resourcePath = [[subprojectBundle resourcePath] stringByAppendingPathComponent:@"ResourceFileName.png"];
      
      if (resourcePath) {
          UIImage *image = [UIImage imageWithContentsOfFile:resourcePath];
          // 在這里使用獲取到的圖片
      }
      

       

       

       

       eg:如果你有一個名為 SubprojectViewController 的類,你可以這樣使用 bundleForClass: 方法:

      NSBundle *subprojectBundle = [NSBundle bundleForClass:[SubprojectViewController class]];

      在這個示例中,[SubprojectViewController class] 返回的是 SubprojectViewController 類的類對象,它將被用來確定該類所在的 bundle。

      總之,bundleForClass: 方法的參數(shù)是一個類對象,通過這個參數(shù)來獲取特定類所在的 bundle,以便在該 bundle 中定位資源文件。

      其他討論:[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: 是否適合子工程中獲取資源文件路徑方法?

      適用場景:

      1. 適用于主程序包中的資源: 這種方法適用于獲取主程序包(Main Bundle)中的資源文件路徑。如果你要獲取主程序包中的資源,這個方法是一個很方便的選擇。

      2. 子文件夾: 如果你想要在主程序包中的特定子文件夾中獲取資源文件,可以將子文件夾名稱作為參數(shù)傳遞給 stringByAppendingPathComponent: 方法。

      3. 資源文件的位置: 確保資源文件位于主程序包中,并在 Xcode 中設(shè)置正確的配置,以便它們被復(fù)制到 bundle 中。

      4. 無法用于其他 bundle: 這個方法主要用于獲取主程序包中的資源文件,對于其他 bundle,如靜態(tài)庫或動態(tài)庫中的資源,使用這種方式可能會失敗,因為它依賴于主程序包的路徑。

      小結(jié):

      1.  [NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:是一個適用于獲取主程序包中資源文件的簡單方法,特別是當你知道資源文件位于主程序包的哪個子文件夾時。但如果你需要獲取其他 bundle 中的資源文件,使用其他方法,比如使用 bundleForClass:更為合適。
      2.  有時在某些特定情況下,這個方法可能會在私有庫中返回資源文件路徑。可能的情況之一是,私有庫被添加到主項目中后,其資源文件被復(fù)制到主程序包的位置,從而使這種方式能夠正常工作。但是,這并不是一個可靠的方法,因為它依賴于特定的項目結(jié)構(gòu)和配置。
      3.  為了保證代碼的可移植性和健壯性,建議在處理資源文件時使用更可靠的方法,如使用 bundleForClass: 方法來獲取正確的 bundle,并從 bundle 中獲取資源文件路徑。這種方法更具通用性,適用于不同項目結(jié)構(gòu)和配置的情況。

      ==========華麗分割線==========

      以上bundleForClass:保證了 子工程正確獲取了資源圖片的路徑。

      還需注意:

      1.圖片和資源文件要在子工程的合理位置 : 比如和Classes 文件并列 建立一個 Resource 文件夾 資源都放在里面

       

      2.圖片和數(shù)據(jù)庫資源要在KFZTechs.podspec 中體現(xiàn) 

      3.私有庫提交代碼時候打tag 需要是最新的tag 和 版本號

       

      綜上:要正確獲取到子工程的圖片 文件資源 需要

      (1)bundleForClass:獲取子工程bundle

      (2)圖片 文件資源 的Resource 放在與Classes并列位置

      (3)圖片和數(shù)據(jù)庫資源要在KFZTechs.podspec 中體現(xiàn)

        (4)  私有庫提交代碼時候打tag 需要是最新的tag 和 版本號

       

      posted on 2023-08-09 11:00  ACM_Someone like you  閱讀(463)  評論(0)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 国产一区视频一区欧美| 淮阳县| 亚洲AV无码一二区三区在线播放| 无码精品人妻一区二区三区湄公河| 亚洲特黄色片一区二区三区| 国产成人毛片在线视频| 免费人成视频网站在线观看18| 国产精品色内内在线观看| 国产不卡一区二区四区| 亚洲男女羞羞无遮挡久久丫| 久久亚洲私人国产精品| 老司机性色福利精品视频| 给我免费观看片在线| 信宜市| 亚洲中文字幕无码爆乳| 国产成人8x视频一区二区| 国产成人不卡一区二区| 亚洲青青草视频在线播放| 国产亚洲欧洲av综合一区二区三区| 丰满人妻熟妇乱又伦精品劲| 秋霞电影网| 国产精品国产三级国产专i| 衡东县| 国内极度色诱视频网站| 97在线碰| 日韩国产成人精品视频| 亚洲成人四虎在线播放| 国产网红主播精品一区| 国产精品一区二区三区麻豆 | 久久精品娱乐亚洲领先| 国产亚洲精品VA片在线播放| 免费可以在线看a∨网站| 亚洲欧美一区二区三区图片| 欧美成人午夜精品免费福利| 国产偷国产偷亚洲清高网站| 久久三级中文欧大战字幕| 亚洲V天堂V手机在线| 把女人弄爽大黄A大片片| 国产粉嫩一区二区三区av| 亚洲男人av香蕉爽爽爽爽| 日本狂喷奶水在线播放212|