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 工作正常)