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