2017-03-02 4 views
2

私はビューに表示するためにいくつかのイメージを使用する静的フレームワークを作成しようとしています。私はをXCodeから、自分のsdkプロジェクトにターゲットを追加して作成しました。すべての画像をバンドルに追加してバンドルを作成し、そのターゲットにバンドルID my.frameworkbundleを与えました。 は、今私は、次のように私の枠組みの中でそのバンドルを取得しようとしています:静的フレームワークとリソースバンドルのNSBundle bundleWithIdentifierがnullを返す

NSBundle * mybundleRef = [NSBundle bundleWithIdentifier:@"my.frameworkbundle"]; 

それから私は別のプロジェクトでは、これらのフレームワークとリソースバンドルを入れて、上の行で関数を実行しようとしました。常にnullを返します。上記のコードのようなフレームワークを取得しようとしても、:

NSBundle * mybundleRef = [NSBundle bundleWithIdentifier:@"my.framework"]; 

これも私に贈られました。しかし、このフレームワークを静的から動的に変更すると、常に正しいバンドルが得られます。 私はUnityでそれを使用しようとしているので、後処理スクリプトを避けるための動的フレームワークは欲しくない。

は、私はまた、次のコードを試してみました:

NSString *bundleString =[[NSBundle mainBundle] pathForResource:@"MyFrameworkBundle" ofType:@"bundle"]; 
NSBundle * PlayCacheBundle = [NSBundle bundleWithPath:bundleString]; 

を、それは何の適切な画像が

システムの詳細見つからない

エラー与える:

  • のXcode:8.2 .1
  • のMacOS:10.12(シエラ)

答えて

0

使用これはdynmicallyバンドルを指定するには:クラスはリソースにのみフレームワークに含まれていないとして、私は私のフレームワークと、このコードをテストしてきた答え ため

NSBundle *mybundleRef = [NSBundle bundleForClass:[self class]] 
+0

感謝をNSBundleのバンドルクラス:[MyFrameworkClassクラス]];「 」NSLog(@ "バンドルの結果:%@"、myBundleRef); ' しかし、その代わりにNSBundleに私のメインパスを渡しますプロジェクト(フレームワークをインポートしたプロジェクト)ではなく、フレームワークork。また、このバンドルで画像を取得しようとしました 'UIImage * Imageref = [UIImage imageNamed:@" msg.png "inBundle:myBundleRef compatibleWithTraitCollection:nil]; ' ImageRefでnullを返します。 –

関連する問題