2017-02-16 5 views
3

内の資産をロードできません。私は、このように作成したアセットディレクトリ内に格納された資産をロードしようとしている:は、フレームワーク

if let asset = NSDataAsset(name: "packages") { 
    print("loaded") 
} else { 
    print("not loaded") 
} 

これは私がアプリケーションプロジェクト内だ場合は正常に動作しますが、それ私がフレームワークプロジェクトの中にいるとうまくいかない。私に何ができる?

私はこれを見つけることができないと言われたthreadが見つかりました。それが私がトラブルを抱えている理由ですか?はいの場合、回避策はありますか?

答えて

1

フレームワーク内でAssetディレクトリを使用する方法が見つかりませんでした。これは不可能なようです。 しかし、Bundleを使用してJSONファイルを処理することができました。ここに私がしたことがあります。

  1. は、あなたのリソースを含む新しいグループ
  2. ドラッグを作成して、今、あなたはあなたのファイルをロードするバンドルを使用する必要があり、このグループ

にファイルをドロップ:

let bundle = Bundle(identifier: <your.bundle.name>) 

あなたのバンドル名を見つけるには、あなたのフレームワークターゲットをクリックし、必要なバンドルを選択します。 [全般]タブで、[バンドルID]フィールドの内容を確認します。

enter image description here

これは、あなたのバンドルのいずれかのファイルにアクセスできるようになります。すべてのファイルに対して

、あなたのファイルパスをロードします。

let path = bundle.path(forResource: <filenameWitoutExtension>, ofType: <yourFileType>) 

最後に、あなたがあなたのファイルをロードすることができます

let data = NSData(contentsOfFile: path) 

を、これは良い習慣であるかどうか、私は知らないが、少なくとも私のフレームワークのリソースにアクセスできます。それが助けてくれることを願って。

関連する問題