2014-01-21 5 views
0

У меня есть сомнения, связанные с моим приложением. Мое приложение занимает 5-10 секунд, чтобы загрузить все данные с моего веб-сервиса, а также из твиттера, используя STTwitterAPI, и я загружаю весь этот контент, когда приложение только начинается. Вопрос в следующем: что вы будете делать за это 5-10 секунд? Показать UIAlertView, говорящий, что приложение загружает контент? Загрузите изображение в UIImageView, и как только данные будут загружены, удалите UIImageView (я не знаю, как это проверить)? Есть ли какой-либо метод, который Apple предоставляет для решения этого вопроса?Загрузите контент в приложение, когда оно начнется в первый раз?

Я просто подумал о настройке NSTimer для UIImageview или NSAlertView, проблема в том, что если я буду добавлять данные на сервер или в зависимости от подключения пользователя, загружающего данные, возможно, UIImageView уходит раньше все данные уже загружаются.

Что было бы лучшим решением? У STTwitter есть способ проверить, загружены ли все данные?

+0

MBProgressHUD + AFNetworking. Покажите загрузочный просмотр спереди и отпустите его, когда AFNetworking скажет, что загрузка завершена. – KudoCC

+0

Я собираюсь прочитать об этих двух API. Большое спасибо! – iOSAddicted

+0

@KudoCC другая проблема будет с STTwitterAPI. Я использую его, и я не знаю, поддерживает ли этот API способ проверки загрузки контента ... – iOSAddicted

ответ

0

Взгляните на этот фантастический рамки дисплея одноплодной HUD:

SVProgressHUD by Sam Vermette, все, что вам сделать, это перетащить папку в вашем Xcode проекта. Затем импортируйте файл .h, где бы вы не захотели отобразить свое сообщение, и затем вы можете начать отображать экран с головкой вверх, что называется наложением, просто вызывая метод из класса singleton, например [SVProgressHUD showWithStatus:@"Doing Stuff"];. Это так просто!

enter image description here

Затем загрузите проект под названием AFNetworking. AFNetworking from github. в AFNetworking существует метод выбора, который вы можете установить на интересующий вас. Таким образом, с этой структурой легко установить соединение с вашим сервером, загрузить данные и фреймворк дает вам возможность установить метод SUCCESS, который затем вызовет ваш метод успеха, как только данные закончат загрузку с вашего сервера.

Вот как выглядит ваш код.

-(void)startDownloadingData{ 
    [SVProgressHUD showWithStatus:@"Downloading data"]; 
    //add your AFNetworking connection here that downloads the data 
    //... 
    [serverRequest setDidFinishSelector:@selector(requestSucceeded:)]; 
    //... 
} 
-(void)requestSucceeded:(ASIHTTPRequest*)request{ 
switch (statusCode) { 
    case 400: 
    case 401: 
    { 

     [SVProgressHUD showErrorWithStatus:@"An error occurred"; 
     break; 
    } 
    case 200:{ 
     NSLog(@"Request Successful"); 
     [SVProgressHUD dismissWithSuccess:@"Done"]; 
    } 
    default:{ 
    } 
} 
+0

Это выглядит действительно круто, проблема в том, что я также загружаю временную шкалу моего твиттера, используя STTwitterAPI. Как я могу проверить, когда все данные из STTwitterAPI были загружены? – iOSAddicted

+0

Хорошо, тогда вы закончите создание нескольких запросов на соединение, и это прекрасно, AFNetworking может обрабатывать несколько сетевых запросов, а ТОЛЬКО когда все загружено, какая AFNetwork будет обнаруживать по одному, как только каждый из ваших сетевых запросов вернется, будьте уверены, что все было скачено :) Я подтолкнул вас в правильном направлении, теперь вы посмотрите на структуру AFNetworking, гарантируя, что она будет иметь то, что вам нужно. – Pavan

+0

Отлично! Я собираюсь попробовать прямо сейчас. – iOSAddicted

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