[UIImageAsset retain]: сообщение отправлено освобожденному экземпляру

Линия

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

выполняется внутри NSOperation в фоновом потоке. Код прерывается здесь сообщением:

[UIImageAsset retain]: message sent to deallocated instance

У меня есть изображение по имени gradient-image в Images.xcassets, Честно говоря, я даже не знаю, какая еще информация была бы актуальна.

Это случается в редких случаях, я не могу воспроизвести это последовательно. Я немного погуглил, но результатов немного. Итак, я решил создать вопрос здесь на SO.

1 ответ

Решение

Прямо из документации Apple по UIImage imageNamed::

Вы не можете предполагать, что этот метод является потокобезопасным.

Вы должны быть в главной теме при загрузке UIImage объекты. Вы можете использовать любой поток, когда используете их, но для их загрузки требуется основной поток.

Другие вопросы по тегам