Xcode 9.2, Swift 4で動作確認済み
アプリケーションバンドルに存在するファイルを取得する
アプリケーションバンドルに存在するファイルは、以下のコードで取得できる。
let path = Bundle.main.path(forResource: "foo", ofType: "json")
let data: NSData? = try? NSData(contentsOfFile: path!, options: .uncached)
ユニットテスト等でテストバンドルに存在しているファイルを取得するにはこの方法ではうまくいかない。
テストバンドルに存在するファイルを取得する
以下の方法で取得できる。
let testBundle = Bundle(for: type(of: self))
let path = testBundle.url(forResource: "bar", withExtension: "json")
let data: NSData? = try? NSData(contentsOf: path!, options: .uncached)
プロジェクト構成
参考:
http://stackoverflow.com/questions/19309092/nsurl-to-file-path-in-test-bundle-with-xctest