Xcode 6 iOS 8 UIImage图像从捆绑问题命名

我使用iOS 7.1构建我的项目并尝试使用存储在/images/cars/car_1.png中的图像加载UIImage视图

所有图像都位于文件夹图像中,如下图所示:

在此处输入图像描述

因此它适用于iOS 7.1和Xcode 5,但是当我尝试使用Xcode 6和iOS 8时,当我尝试crate图像时,UIImage实例等于nil。

UIImage *image = [UIImage imageNamed:@"/images/cars/car_1.png"]; 

宝图像

零(适用于iOS 8)

它也可以

 UIImage *image = [UIImage imageNamed:@"/images/sport-cars/car_1.png"]; 

正如您所看到的,资源名称与car_1.png相同,但它可以,因为它们位于不在捆绑文件夹中的不同资源文件夹中。

好的问题是,在模拟器上,当我们使用@"/Reference Folder Path/image.jpg"时,由于某种原因,它在设备上似乎无法正常工作。

在路径开头删除此“/”可解决此问题。

您可以查看此video ,了解其运作方式。

在iOS 4及更高版本中,如果文件是PNG格式,则无需指定.PNG文件扩展名。 在iOS 4之前,您必须指定文件扩展名。

所以答案是你必须为所有JPEG指定文件扩展名。

如果这不能解决您的问题,请尝试此操作

您可以使用imageWithContentsOfFile方法加载图像,而不是使用imageNamed

 NSString *imageFile = [NSString stringWithFormat:@"%@/iphone4/%@", [[NSBundle mainBundle] resourcePath], @"1.png"]; UIImage* image = [UIImage imageWithContentsOfFile:imageFile]; NSString *imageFile1 = [NSString stringWithFormat:@"%@/iphone5/%@", [[NSBundle mainBundle] resourcePath], @"1.png"]; UIImage* image1 = [UIImage imageWithContentsOfFile:imageFile1]; NSString *imageFile2 = [NSString stringWithFormat:@"%@/iphone6/%@", [[NSBundle mainBundle] resourcePath], @"1.png"]; UIImage* image2 = [UIImage imageWithContentsOfFile:imageFile2]; 

我在项目中添加了3个文件夹(具有相同的图像名称和扩展名)。 我能够以不同的方式获取它们并且它工作正常