applicationDidFinishLaunching неправильное место для установки изображения для UIImageView? - PullRequest
0 голосов
/ 02 апреля 2009

Я узнал это:

applicationDidFinishLaunching (метод делегата протокола UIApplicationDelegate), по-видимому, вызывается ДО того, как мои представления из файла пера полностью загружаются. Поэтому я целый день пытался изменить изображение UIImageView сразу после запуска моего приложения в симуляторе iPhone, но ничего не произошло.

Затем я написал небольшой метод действия, который я вызываю нажатием кнопки. И тут случилось: РАБОТАЕТ!

Таким образом, метод делегата applicationDidFinishLaunching не совсем подходящее место для вещей, которые необходимо сделать после того, как приложение действительно «готово». Я предполагаю, что есть нечто лучшее, что ждет полной загрузки пера. но где? и что?

Ответы [ 2 ]

6 голосов
/ 02 апреля 2009

Я предполагаю, что есть нечто лучшее, что ждет полной загрузки пера. но где? и что?

Для конкретных приложений, таких как глобальные настройки, настройки и т. Д., -appDidFinishLaunching - правильное место.

Для конкретных вещей UIView обычно используется метод -viewDidLoad в подклассе UIVIewController. Это практически единственное место, где вам гарантированно загружен nib-файл, инициализированы IBOutlets и присоединены IBActions.

Это отличие от мира Mac OS X, где -awakeFromNib было местом, где это можно сделать.

1 голос
/ 02 апреля 2009

Эй, пока ваши представления и их контроллеры не создали экземпляр, вы не можете изменять их интерфейс. Однако ради вашей проблемы вы всегда можете объявить uiimageview как свойство класса делегата приложения и инициализировать его в событии appDidFinishLaunching. Но это худшая практика. Как на iPhone, который имеет ограниченную память, всегда ленивая загрузка, т.е.: инициализируйте объекты только тогда, когда они действительно требуются в вашем интерфейсе. Поэтому в идеале вы должны делать это в событии viewDidLoad представления, в котором вы хотите использовать этот UIImageView.

applicationDidFinishLaunching обычно используется для таких вещей, как проверки файлов базы данных, открытие соединения с базой данных, заполнение глобальных переменных, любая другая логика приложения, проверка доступного подключения к Интернету и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...