2017-04-19 3 views
0

だから私は奇妙な問題にぶち当たっています。私はすでに完璧に動作する資産を既に持っている別の開発者によって開始された既存のプロジェクトに追加します。tvOS:インタフェースビルダーで使用するとアセットが機能しますが、プログラムではありません

私はいくつかの新しいイメージアセットを追加しました。インタフェースビルダーで(UIImageViewを配置したときに)名前で参照すると完全に正常に動作しますが、UIImageを同じ名前で作成しようとすると、 。

let myImage = UIImage(named: "my-image-name") // Always returns nil 

私は私がタイプミスなどを持っていませんが、それだけで動作するようには思えないこと、それが適切な目標を持って確保してきました。いくつかの追加情報については、これは私が変更しているローカル開発ポッドにあります。

答えて

1

はメインアプリケーションバンドルの資産ですか?一方、最後に記載したこのローカル開発ポッドの1つですか?

あなたはUIImageのドキュメントで見ることができるように:https://developer.apple.com/reference/uikit/uiimage/1624154-init

UIImage初期化子は、デフォルト値として、メインアプリケーションバンドルを持つ、資産が実際に定義されているバンドルを示すために、二番目のパラメータinを持っています。

あなたの資産「my-image-name」がメインバンドルに定義されていない場合、それは見つからないことを意味します。

あなたはそれが定義されているとの同じバンドルから資産をロードしようとしている場合は、次のコードでそれを読み込むことができます:ロードしようとしている場合、一方

let image = UIImage(named: "my-image-name", in: Bundle(for: self)) 

は、アセットを別のバンドルから取得するには、そのバンドルを指定する必要があります。

let image = UIImage(named: "my-image-name", in: Bundle(forClass: CLASSINYOURLOCALFRAMEWORK.self)) 
関連する問題