【问题标题】:download and save image to root下载图片并保存到root
【发布时间】:2010-12-15 11:09:56
【问题描述】:

我将如何下载图像并将其保存到应用程序的根目录,这样基本上我可以通过

访问图像
[UIImage imageNamed:@"myimage.jpg"];

谢谢

梅森

【问题讨论】:

  • imageNamed:仅适用于您使用应用程序包部署的图像。但是你不能写入这个包 - 你必须将你的图像保存到你的应用文档文件夹中。
  • 哦,好吧,我将如何通过文档文件夹执行此操作?

标签: iphone objective-c uiimage


【解决方案1】:

首先您需要获取图像数据

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://media03.linkedin.com/mpr/mpr/shrink_80_80/p/3/000/064/2e2/1bd3849.jpg"]];

然后你需要将数据写入Documents目录

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *pathLD = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"imageLD%d.jpeg",[[NSDate date] timeIntervalSince1970]]]; 

NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: pathLD]){
    [imageData writeToFile:pathLD atomically:YES];
} else {
    NSLog(@"File exists at path:%@", pathLD);
}

要从 Documents 中获取图像:

[UIImage imageWithContentsOfFile:pathLD];

祝你好运:D;

【讨论】:

    【解决方案2】:

    出于各种原因,您不应该这样做。将您的应用程序目录视为只读。

    您应该使用 Documents 或 Library 目录。如果您的文件应该可以通过 iTunes 进行用户访问(如果您已通过 iTunes 启用文件共享),Apple 建议您应该使用 Documents 目录,或者如果应该使用 Library 的自定义子目录(您需要使用 NSFileManager 创建) ' 用户不可见(但应备份)。

    您可以像这样查询库目录的路径:

    NSArray *paths;
    paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
                NSUserDomainMask, YES);
    // dir = [paths objectAtIndex:0];
    

    NSLibraryDirectory 替换为NSDocumentsDirectory 以获取Documents 目录。

    然后您将创建一个返回图像完整路径的方法,然后您将执行以下操作:

    [UIImage imageWithContentsOfFile:[self pathForImage:@"myimage.jpg"]]
    

    【讨论】:

    • 那么我将如何保存图像?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    相关资源
    最近更新 更多