то, что вы на самом деле делаете в этом примере, может занять много времени для загрузки;Лучше всего убедиться, что это потокобезопасно.
Более того, было бы еще лучше, если бы вы сделали объект данных реальным поставщиком данных (обычно с использованием протоколов), отдельно от класса, и сделали изображениеКонтейнер разоблачает, что он обрабатывает лениво загруженный объект (что может вызвать протест у некоторых людей).
в частности, вы можете вызвать загрузку данных / изображения от провайдера, вызвать его из awakeFromNib (например) - тогда загрузчик выключится и загрузит данные во вторичный поток (особенно, если он загружен),предоставить поставщику данных обратный вызов, чтобы сообщить представлению о том, что изображение готово (обычно с использованием протоколов).как только представление получит неархивированное изображение, аннулируйте провайдер данных.
наконец, если вы имеете дело с ресурсами приложения, «система» будет кешировать часть этого для вас, так что вы пытаетесь работать противто, что уже оптимизировано за кулисами. Короче говоря,
, обычно это нормально (например, не ленивая инициализация) - но этот конкретный дизайн (как сказал другой автор) имеет круговую зависимость, которую следует минимизировать.