2017-11-27 3 views
1

Ich versuchte, ein Rahmenwerk mit seinem eigenen Bild aufzubauen und es kompiliert fein. Wenn ich jedoch mein Framework in ein anderes Projekt einfüge, stürzt es beim Laden des Images ab, keine Idee?Wie man Rahmen mit xcassets baut

ImageTest (mein Rahmen)

public class ImageTest { 
    open func getImage() { 
     return #imageLiteral(resourceName: "IMG_0745") 
    } 
} 

Mein Projekt

import ImageTest 
... 
... 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let imageView = UIImageView(image: ImageTest.getImage()) // crash ! 
    imageView.center = view.center 
    view.addSubview(imageView) 
} 

enter image description here

Antwort

1

Das Bild ist in ImageTest Rahmen. Wenn Sie diesen Code return #imageLiteral(resourceName: "IMG_0745") ausführen, wird das Image.xcassets des ImageTest-Projekts untersucht, und wenn das Image dort nicht gefunden wird, führt dies zum Absturz.

Ändern Sie Ihren Code Bündel param von init function

open func getImage() { 
     return UIImage(named:"IMG_0745", bundle:Bundle(for: self), compatibleWith:nil) 
    } 
zu verwenden