[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
объекты. Вы можете использовать любой поток, когда используете их, но для их загрузки требуется основной поток.