JPG图像不会加载UIImage imageNamed

Ras*_*mas 20 uiimage imagenamed ios

我在iOS版本4的参考文献中读到了+使用object 的方法imageNamed,UIImage不需要文件扩展名.

UIImage课堂参考:

特别注意事项.

在iOS 4及更高版本中,不需要文件名来指定文件扩展名.在iOS 4之前,您必须指定文件扩展名.

但似乎这只适用于PNG文件.

如果我的代码是:

[UIImage imageNamed:@"test"];
Run Code Online (Sandbox Code Playgroud)
  • 仅当文件是时才加载图像 test.png
  • 如果是,图像不会加载test.jpg.

对我来说这是一个很大的问题,因为我需要保持一个动态的图像加载(我不知道在运行时,如果我想加载图像pngjpg).

你能帮帮我吗?
谢谢.

Bea*_*lle 0

如果您的应用程序中捆绑了这些图像,您应该知道它们的扩展名。

如果您从在线源获取它们并且将它们作为 NSData,则可以在此处使用此代码来确定类型。

+ (NSString *)contentTypeForImageData:(NSData *)data {
    uint8_t c;
    [data getBytes:&c length:1];

    switch (c) {
    case 0xFF:
        return @"image/jpeg";
    case 0x89:
        return @"image/png";
    case 0x47:
        return @"image/gif";
    case 0x49:
    case 0x4D:
        return @"image/tiff";
    }
    return nil;
}
Run Code Online (Sandbox Code Playgroud)

根据这个问题的最佳答案。