Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 忽略iOS高分辨率@2x文件_Iphone_Objective C - Fatal编程技术网

Iphone 忽略iOS高分辨率@2x文件

Iphone 忽略iOS高分辨率@2x文件,iphone,objective-c,Iphone,Objective C,我有一个包含大量图像的应用程序(1000+)。我有一个数据库表,其中包含这些图像的所有文件名。使用UIImage*image=[UIImage imageNamed:…]根据此文件名按需加载图像。 由于有大量的图像,我想通过编程进行测试,以确保数据库中包含的所有图像实际上都存在于项目中。为了实现这一点,我从表中提取所有文件名,循环每个文件名,运行上面的代码,并检查是否image!=无。这个很好用 问题是,我想确认正常分辨率和高分辨率(@2x)图像都存在。如果高分辨率文件存在,但正常分辨率文件不存

我有一个包含大量图像的应用程序(1000+)。我有一个数据库表,其中包含这些图像的所有文件名。使用
UIImage*image=[UIImage imageNamed:…]根据此文件名按需加载图像。

由于有大量的图像,我想通过编程进行测试,以确保数据库中包含的所有图像实际上都存在于项目中。为了实现这一点,我从表中提取所有文件名,循环每个文件名,运行上面的代码,并检查是否
image!=无
。这个很好用

问题是,我想确认正常分辨率和高分辨率(@2x)图像都存在。如果高分辨率文件存在,但正常分辨率文件不存在,我的代码将不会检测到这一点


是否有某种方法可以实现这一点,而无需运行此过程两次,每种分辨率类型一次?我可以强制SDK忽略@2x文件吗?

您应该只使用
NSFileManager
。它可能会更快,因为它实际上不会加载图像文件的内容。对于每个文件名,使用
NSFileManager
fileExistsAtPath
方法检查图像。然后,将“@2x”附加到基本名称以检查2x映像。

我将使用NSBundle来定位文件,这样UIImage就不必加载到内存中,您可以使用类似于

NSBundle *myBundle = [NSBundle mainBundle];
if([myBundle pathForResource:@"MyImage" forType: @"png"] == nil){
    // low res image isn't there
}

if([myBundle pathForResource:@"MyImage@2x" forType: @"png"] == nil){
    // high res image isn't there
}
应该快得多