2

我正在尝试创建一个应用程序来保存用户从媒体选择器中选择的媒体以供重复使用,并避免重新选择项目。有没有办法使用媒体选择器或任何示例代码来做到这一点?

4

1 回答 1

2

这样做的唯一方法是将媒体选择保存在应用程序的沙箱中,即 Documents 目录以供重复使用。因为,您无法在没有用户干预的情况下访问媒体,也就是说,每当您想从画廊中挑选一些东西时,您都必须每次都展示媒体选择器。您可以使用类似这样的方法将图像保存在应用程序的 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 回答