iOSアプリ内に埋め込んだファイルをプログラムから利用する

概要

アプリ内に任意のファイルを埋め込んでおき、プログラムからそのファイルにアクセスして利用する。

ファイルの追加

Xcodeプロジェクト内にファイルを追加する。以下ではテキストファイルsample.txtを追加している。 f:id:shindo1687:20200422215525p:plain

ファイルを追加すると、自動的にプロジェクト設定のBuild Phases内のCopy Bundle Resourcesに追加されている。 f:id:shindo1687:20200422220045p:plain

ビルドしたアプリのパッケージ内容を表示して、ファイルがコピーされていることを確認。 f:id:shindo1687:20200422220409p:plain

プログラムからアクセス

- (void)test {
    NSString* filePath = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"txt"];
    NSLog(@"filePath=%@", filePath);
    
    NSString* fileText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"fileText=%@", fileText);
}

実行結果

2020-04-22 21:57:41.726661+0900 EmbedFileSample[10929:2028561] filePath=/private/var/containers/Bundle/Application/83611BD6-C136-477C-A4F7-D229F17EB2EA/EmbedFileSample.app/sample.txt
2020-04-22 21:57:41.727121+0900 EmbedFileSample[10929:2028561] fileText=This is a sample file.