UIImage imageWithContentsOfFile: - 包含文件扩展名还是没有?

时间:2013-06-26 15:29:38

标签: ios objective-c uiimage

使用[UIImage imageWithContentsOfFile:]时排除文件扩展名是否有任何负面影响,或者最好在路径中包含文件类型?

Apple Docs声明initWithContentsOfFile:需要以下路径作为参数:

  

文件的路径。此路径应包含标识图像数据类型的文件扩展名。

但是,[UIImage imageWithContentsOfFile:]的路径只是声明:

  

文件的完整或部分路径。

我只是想知道是否仍然是包含文件扩展名的最佳做法,或者甚至不担心它。谢谢!

2 个答案:

答案 0 :(得分:0)

您应该包含所有文件请求的文件扩展名。我能想到的唯一一个例子就是使用

NSBundle pathForResource:ofType:

方法。该方法指定文件名之外的文件扩展名。我相对肯定“部分路径”是指相对路径。您可以仅通过文件名在bundle的根目录中请求一个文件,因为它的相对于bundle的路径在根目录中,换句话说就是文件名。

答案 1 :(得分:0)

最好的方法是使用NSBundle pathForResource:ofType:

如果你有这些图片:

  • “myImage.png”(iPhone)
  • “myImage@2x.png”(iPhone Retina)

如果您想将其加载到UIImage,您将使用以下代码:

UIImage *myImage;
myImage = [UIImage imageWithContentsOfFile:[NSBundle pathForResource:@"myImage" ofType:@"png"]];

此代码还将加载iPhone Retina中的“myImage@2x.png”,无需将@ 2x添加到代码中。

请务必写下确切的文件名。 “myimage”可能无法在设备上运行,因为原始文件名具有大写“I”(“myImage.png”)。