`[UIImage imageNamed:]`从哪里加载图像?如何在运行时将图像插入到那里?

Mat*_*ows 4 iphone objective-c uiimage nsdata ios

我有一堆已编写的代码,目前依赖于随我的应用程序分发的图像.我想改变这一点,以便可以从网站上下载图像,以防止不断上传/获得批准/发布新版本.

代码[UIImage imageNamed:@"MyImageName.jpg"]遍布它的类型引用.我已经确定了一段代码,可以愉快地下载这些图像,这样如果我能把它们放在正确的位置,我的应用程序将正常工作,提供网络连接,即时下载图像.但是我不知道在哪里写下载的图像数据,以便我的预先存在的代码功能不变.

我有代码将相关的图像数据导入NSData对象 - 所以只需知道将数据写入何处?

    NSLog(@"ERROR - MISSING IMAGE: %@", imageName);
    NSData* theImage = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://f6c.yourmapp.mobi/Images/%@", imageName]]];
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* documentsDirectory = [paths objectAtIndex:0];
    NSString* localFilePath = [documentsDirectory stringByAppendingPathComponent:imageName];
    [theImage writeToFile:localFilePath atomically:YES];
    tempImage = [UIImage imageNamed:imageName];
    if (tempImage != nil)
    {
        [images addObject:tempImage];
        haveAddedImages = YES;
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

kub*_*uba 6

它从应用程序包加载图像.您无法在运行时写入此文件夹.而是将您的图像写入Documents文件夹(您可以获取路径NSDocumentDirectory)并用于[UIImage imageWithContentsOfFile:]加载这样的图像.