2015-11-29 40 views
4

我已按照CocoaPods網站上的說明創建了一個新的Pod組件。現在,我有我的吊艙內的結構如下:Swift - Pod圖像未加載(未找到,返回零)

  • 吊艙(文件夾)

    • MyComponent的(文件夾)

      • MyComponent.swift

      • 資源(文件夾)

        • name_of_image.png

然而,當我嘗試撥打:

UIImage(named: 「name_of_image」) 
從MyComponent.swift

,我得到一個「無「回報。

我讀過的解決方案包括爲我的組件創建一個包,但是我還沒有找到自己生成它的正確方法。任何建議都會很好。

感謝

回答

6

你不能(也不應該)吊艙內使用UIImage(named:)。這將從您的應用程序中而不是從Pod中加載圖像。

您需要首先獲取Pod的NSBundle,然後使用它來加載圖像。您可以使用Pod中的任何課程獲得NSBundle

let bundle = NSBundle(forClass: ClassFromYourPod.self) 
let image = UIImage(named: "xyz", inBundle: bundle, compatibleWithTraitCollection: nil) 
+0

感謝您的提示。但是,它仍然不能解決我的問題,因爲我仍然無法獲得UIImage。正如我所說的,我沒有一個MyClassName.bundle在pod中的任何地方。我只有一個資源文件夾和其中的圖像。 – Armin

+0

你的Pod **是**包。每個Pod都是它自己的包。你需要從你的Pod(一個真正的類,而不是一個包文件!)中的一個類,這樣Objective-C就可以找到你的Pod的NSBundle。 – fluidsonic

0

這爲我工作,如果你直接導入png沒有xcassets

let bundle = Bundle(for: ClassInsidePod.self) 
    let image = UIImage(named: "YourImageName", in: bundle, compatibleWith: nil) 
    imageView.image = image 

但是,如果你是在Example測試項目中,你需要pod update更新該項目的豆莢。在我的情況下,在這之前,它總是返回nil