2

メディアピッカーからのユーザーのメディア選択を保存して再利用し、アイテムを再選択する必要がないアプリを作成しようとしています。メディアピッカーまたはこのためのサンプルコードを使用してこれを行う方法はありますか?

4

1 に答える 1

2

これを行う唯一の方法は、メディアの選択をアプリのサンドボックス、つまりドキュメントディレクトリに保存して再利用することです。なぜなら、ユーザーの介入なしにメディアにアクセスすることはできないからです。つまり、ギャラリーから何かを選びたいときはいつでも、メディアピッカーを提示する必要があります。次のようなものを使用して、アプリのdocディレクトリに画像を保存できます。

+(BOOL)saveImageInDocumentsDirectory:(UIImage*)image WithName:(NSString*)name {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:name];
        NSData *imageData = UIImagePNGRepresentation(image);
        return [imageData writeToFile:savedImagePath atomically:NO];
}

そして、画像を取得するには:

+(UIImage*)getImageFromDocumentsDirectoryWithName:(NSString*)name {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:name];
    return [[[UIImage alloc] initWithContentsOfFile:savedImagePath] autorelease];
}

お役に立てば幸いです。

于 2012-06-11T20:47:24.253 に答える