2016-11-19 21 views
2

私はObj-CからSwift 3.0に移行しているプロジェクトを持っています(そして私はSwiftのかなりのノブです)。メインバンドルのサブフォルダへのパスを取得する方法は?

この行をどのように翻訳すればよいですか?

NSString *folder = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myfolder"]; 

私は、リソースのパスを取得するために管理:

let resoursePath = Bundle.main.resoursePath; 

しかし、どのように、私は "MyFolderという" という名前のサブフォルダへのパスを得るのですか? 私はその中のファイルへのパスではなく、サブフォルダのパスを取得する必要があります。

スウィフト-3では

答えて

7

appendingPathComponentURL作る、およびコール:

let resourcePath = Bundle.main.resourcePath 
let subdir = URL(fileURLWithPath:resourcePath!).appendingPathComponent("sub").path 

または単に

let subdir = Bundle.main.resourceURL!.appendingPathComponent("sub").path 

はスウィフトでstringByAppendingPathComponent方法についての情報にthis Q&Aを見る(おかげで、Martin Rを!) 。

+4

のため –

+0

@MartinR感謝をコメント! – dasblinkenlight

+0

これは最高の答えです。 –

0

あなたがバンドルサブディレクトリのリストを取得し、唯一の特定のタイプのリソースを取得するために、このメソッドを使用することができます:... `Bundle.main.resourceURL`はそれを単純化する使用

Bundle.main.paths(forResourcesOfType: type, inDirectory: folder) 
関連する問題