2015-09-01 5 views
0

Я пишу приложение, где я должен загрузить некоторые изображения с сервера, а затем я должен поместить в свою модель, а затем запустить главный контроллер View, а затем загрузить мои изображения из модели в коллекцию View. как это сделать ?Как выполнить задачу перед запуском приложения в iOS?

ответ

1

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

Но я действительно не рекомендовал бы этого делать. Первая причина заключается в том, что вы, вероятно, хотите дождаться загрузки изображений. Вы не должны выполнять сетевой вызов в указанном выше методе, потому что не знаете, сколько времени потребуется для запуска. Apple рекомендует, чтобы вы вернули ДА из этого метода как можно быстрее. Невозможно привести к сбою 0x8badf00d - «приложение не удалось запустить вовремя».

Что я предлагаю сделать вместо этого, создает «контроллер загрузочного представления», который является корневым контроллером приложения после запуска. Этот диспетчер представлений должен начать загрузку изображения, сообщить пользователю, что происходит (с помощью счетчика или что-то в этом роде) и дождаться загрузки изображений, чтобы направить ваш главный контроллер представления в стек (или представить его или что-то еще). Ваши изображения будут увлажнены, и вы сможете использовать их для заполнения своего вида коллекции.

Ваш главный контроллер представления должен иметь какую-либо ссылку на эти изображения (либо передать их с контроллера просмотра загрузки, либо создать синтаксис данных для их извлечения), и использовать методы UICollectionViewDataSource и UICollectionViewDelegate для заполнения ячеек просмотра коллекций (используя изображения).

1

Первый способ, где вы можете начать делать работу является

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    /* start loading your images here, 
     cache them and let your viewcontroller reload */ 
    return YES; 
} 

в AppDelegate.m

Смежные вопросы