[UIImageAsset retain]:发送到释放实例的消息

[UIImageAsset retain]: message sent to deallocated instance

一行

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

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

[UIImageAsset retain]: message sent to deallocated instance

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

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

直接从 Apple's documentationUIImage imageNamed::

You can not assume that this method is thread safe.

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