如何确定图像中是否存在图像?

时间:2010-06-10 04:20:32

标签: iphone objective-c cocoa-touch nsstring uiimage

我有一个NSString s数组:

Flower
Car
Tree
Cat
Shoe

其中一些字符串有与之相关的图像;有些人没有。我可以通过在名称后添加.png来构建图片名称(例如Flower.png)。

在尝试将图像加载到视图中之前,如何检查图像中是否存在该图像?

4 个答案:

答案 0 :(得分:19)

这也应该有效,而且有点短:

if (flowerImage = [UIImage imageNamed:@"Flower.png"])
{
   ... // do something here
}
else
{   
   ... // image does not exist
}

imageNamed:方法将在主包中查找png文件。

答案 1 :(得分:6)

只需加载资源并检查它是否为nil

NSString* myImagePath = [[NSBundle mainBundle] pathForResource:@"MyImage" ofType:@"jpg"];
if (myImagePath != nil) {
    // Do something with image...
}

答案 2 :(得分:3)

我会将图像指定为变量,然后您可以检查图像是否存在:

UIImage * flowerImage = [UIImage imageNamed:@"Flower.png"];

if (flowerImage) {
    // Do something
}
else {
    // Do something else
}

在接受的答案中,我们正在检查图片是否等于具有特定名称的图像。这可能会出错,因为如果

我们将返回no
  • 图片Flower.png不存在

  • 图像Flower.png确实存在,但是flowerImage被设置为不同的图像意味着它们不相等

为图像指定一个变量,然后检查变量是否已分配将根据Flower.png是否存在向我们返回肯定的是或否

答案 3 :(得分:0)

我甚至不添加" .png"到文件名,它的工作原理:

NSArray *images = @[@"Flower", @"Car", @"Tree", @"Cat", @"Shoe"];

if ([UIImage imageNamed:images[0]]){
        // there is a flower image
    } else {
        // no flowers for you
    }
}