[UIImageAsset 保留]:发送到已释放实例的消息

Posted

技术标签:

【中文标题】[UIImageAsset 保留]:发送到已释放实例的消息【英文标题】:[UIImageAsset retain]: message sent to deallocated instance 【发布时间】:2015-02-16 14:57:33 【问题描述】:

一行

UIImage *tempImage = [UIImage imageNamed:@"gradient-image"];

在后台线程的 NSOperation 中执行。 代码在此处中断并显示消息:

[UIImageAsset retain]: message sent to deallocated instance

我在Images.xcassets 中有名称为gradient-image 的图像。 老实说,我什至不知道还有什么其他信息是相关的。

这种情况很少发生,我无法始终如一地重现它。 我用谷歌搜索了一下,但没有多少结果。所以,我决定在这里创建一个关于 SO 的问题。

【问题讨论】:

【参考方案1】:

直接从Apple's documentation 到UIImage imageNamed:

你不能假设这个方法是线程安全的。

加载UIImage 对象时,您必须在主线程上。使用它们时可以在任何线程上,但加载它们需要主线程。

【讨论】:

以上是关于[UIImageAsset 保留]:发送到已释放实例的消息的主要内容,如果未能解决你的问题,请参考以下文章

[NSDecimalNumber 保留]:消息发送到已释放实例 0x174222220,但为啥呢?

发送到已释放实例的消息

发送到已释放实例的消息

发送到已释放实例问题的消息

tableView:didSelectRowAtIndexPath - 发送到已释放实例的消息

发送到已释放实例 Core Data 的消息