Core Data に保存したい画像が約 60 枚あります。そのうち 30 枚はアバターで、プレフィックスが avt_filename_00X.png で、そのうちの 30 枚は小さく、別のプレフィックスが付いています。
すべての画像を BLOB として Core Data/SQLite に保存するのではなく、見つかった各画像のパスを保存したいと考えています (MySQL データベースの画像パスを保存するのと同じ方法で)。
ただし、NSBundle にある画像のパスを取得する方法がわかりません。
次の方法で NSDocumentDirectory へのパスを取得できます。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager fileExistsAtPath:documentsDirectory];
NSLog(@"documentsDirectory = %@", documentsDirectory);
そして、画像を読み込んで配列に追加できます。
if (qty == 0)
{
//NSLog(@"fileToLoad = %@", fileToLoad);
UIImage *img = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileToLoad ofType:fileExt]];
[self.avtList addObject:img];
[img release];
} else {
// load multiple image into an array
// not coded yet
}
しかし、私が確信していないのは次のとおりです。
NSBundle 内でコンピュータがイメージを見つけたパスを取得するにはどうすればよいですか?
アプリがデバイス上にあるときにパスが機能することを確認するにはどうすればよいですか?
アイデアは、配列に保存されているすべての画像を取得し、後でそれらを Core Data/SQLite にプッシュすることです。