ios8 UIImage imageNamed:崩溃

Posted

技术标签:

【中文标题】ios8 UIImage imageNamed:崩溃【英文标题】:ios8 UIImage imageNamed: crash 【发布时间】:2015-01-06 11:34:58 【问题描述】:

我在 crashlytics 中为 UIImage imageNamed: 方法列出了一个奇怪的崩溃。此崩溃仅出现在 ios8 上,并且对于许多用户来说是一个长期存在的问题。虽然,奇怪的是我在测试时无法重现这个问题。

请参考 crashlytics 的崩溃日志图片。

我猜,这可能与imageNamed: 方法的内部工作有关。

【问题讨论】:

使用区分大小写的“.png”和“.PNG”检查您的图像名称 如果没有引用你应用的源代码,就无法理解你在做什么,也无法提供准确的可能性。 您确定没有向 imageNamed 发送 nil/NSNull 吗? 我遇到了同样的问题,但是我的都在 iOS 7(7.0.5 和 7.0.6)上。您可能希望使用此信息更新您的问题。但我不知道问题可能是什么。 @rounak 的建议不适用于我,因为我正在传递一个字符串文字内联,所以 nil 没有办法。 看看这个***.com/questions/22146957/…我确实有一个slice.right == 0所以它可能真的是这样。 【参考方案1】:

在我将UIImage imageNamed: 方法从后台线程移动到主线程后,问题得到了解决。顺便说一句,这应该总是导致运行时崩溃,因为该方法应该只在主线程上运行(就像所有 UIKit 方法一样),但由于某些原因,以前版本的 iOS 让它运行。在 iOS8 中虽然它更频繁地崩溃,但并非总是如此。

【讨论】:

非常感谢!我遇到了这个确切的问题,并且正在撕扯我的头发试图弄清楚发生了什么。我的应用在DrawRect 的CGPatternCalback 中使用[UIImage imageNamed:]。只需将 UIImage 引用移动到管理器并引用它,而不是每次都创建一个新的 UIImage。

以上是关于ios8 UIImage imageNamed:崩溃的主要内容,如果未能解决你的问题,请参考以下文章

UIImage + NSCache 与 [UIImage imageNamed:]

无法使用 imageNamed 方法获取 UIImage 对象

UIImage imageWithContentsOfFile 不起作用(ImageNamed 工作正常)

UIImage 的 -imageNamed: 方法是不是适用于存储在“文档”中的图像文件?

UIImage imageNamed 返回 nil

UIImage imageName