从Assets.xcassets加载图像时,iOS App崩溃

时间:2017-06-12 06:33:01

标签: ios objective-c uiimage

在名为“5”的Assets.xcassets中有一个名为“5.jpg”的图像文件。

我编写代码UIImage *image = [UIImage imageNamed:@"5"];来创建图片,但应用程序在控制台中崩溃并输出*** Assertion failure in -[_CUIThemePixelRendition _initWithCSIHeader:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreUI/CoreUI-432.4/CoreTheme/ThemeStorage/CUIThemeRendition.m:3797

3 个答案:

答案 0 :(得分:7)

我在XCode 9测试版中遇到过这个问题,运行iOS 10或更低版本。 Apple似乎已经放弃了对XCAssets中JPEG文件的支持。您可以使用do作为@Esha建议并切换到PNG,或者您不能使用XCAsset,将图像放在本地目录中,并通过其URL引用它。

苹果有可能故意这样做(虽然如果他们这样做了,我找不到任何文件)或者这是一个XCode 9错误。我已向Apple报告,您可以跟踪错误here.

的进度

答案 1 :(得分:2)

尝试在资源文件夹中放置 .png 图像。 jpg 图片会出现此问题。

答案 2 :(得分:0)

该行应为

UIImage *image = [UIImage imageNamed:@"5.jpg"];

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

来自Apple Documentation

建议您为应用中的大多数图片使用PNG或JPEG文件。图像对象针对读取和显示两种格式进行了优化,这些格式提供了比大多数其他图像格式更好的性能。由于PNG格式无损,因此特别推荐用于应用界面中使用的图像。