5

リソース、nibファイル、ローカリゼーションファイルを共通の再利用可能なバンドルに分割したかったのです。そこで、iOSアプリケーション用のバンドルを作成し、ビルドフェーズを使用してバンドル内に含めるリソースを指定し、バンドルリソースをコピーしました。しかし、バンドルをロードしようとすると、バンドルをロードできません。[NSBundle allBundles]を使用してみましたが、配列にはメインのアプリバンドルのみが表示されます。

NSApplicationPathのディレクトリも列挙しようとしましたが、使用可能なバンドルはアプリケーションのデフォルトバンドルのみです。このテクニックを学び、それを利用してリソースを分離したかったのです。どんな助けや提案も大歓迎です。ありがとうございました

4

3 に答える 3

6
[NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] bundlePath], pathToYourBundleWithinTheDotAppDirectory];

どうやって乗るのか教えてください。

于 2012-12-10T22:03:56.070 に答える
3

次のようなものを試してください。

NSBundle* bundle=[NSBundle bundleWithIdentifier: @"bundle name"];

また、バンドルをプロジェクトにドラッグしたときに、次のオプションが選択されていることを確認してください。

ここに画像の説明を入力してください

于 2012-12-10T22:07:35.260 に答える
1

1つのバンドルを持つプロジェクトの場合、私は以下を使用します。

// in this example, we load test.png from the bundle
NSString *pathToResource = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"];

これを非常に便利にするのは、ローカライズされたファイルがある場合、これが現在のユーザーロケールのファイルへのパスを提供することです。ローカライズされたファイルはメインディレクトリではなく、独自のサブフォルダにあるため(たとえば、英語のローカライズされたファイルは@ "en.lproj"サブフォルダにあります)、これは便利です。名前で呼び出すのは面倒です。フルパス。このメソッドは、パスを取得します。

于 2012-12-10T22:09:31.147 に答える