Это как мое приложение выглядит в настоящее время:Использует performSelector: afterDelay: самый эффективный способ очереди или порядка?
После того как я выполнить обновление базы данных в моем контроллере подробно в ракурсе номере 7 на изображении выше, как только кнопка сохранения нажата деталь сохраняются базы данных. Я вернусь к tableView номер 5 и ожидаю, что соответствующая строка покажет последние обновления, вызвав специальный метод из рамки parse.com, который перезагружает объекты и обновляет представление таблицы, например. [self loadObjects].
Я использую разматывающий сегмент. В представлении 7 я делаю связь между кнопкой сохранения и символом выхода его окна контроллера в построителе интерфейса, а затем в tableView number 5 У меня есть метод segue, который соответствует этому подключению.
разматывает метод Segue:
-(IBAction)saveDetailsButtonTapped:(UIStoryboardSegue *)segue {
// alert goes here
[self performSelector:@selector(didTapRefreshButton:) withObject:self afterDelay:1.0];
}
Этот метод очищает таблицу и загружает первую страницу объектов:
- (IBAction)didTapRefreshButton:(id)sender {
[self loadObjects];
}
Когда сохранить щелкнули вид № 7 Детали сохраненный в db, и пользователь выкупается до вида таблицы 5, тогда метод выше работает после задержки 1.0. Я думал, что все в порядке, но не слишком хорошо. Я попробовал это на своем телефоне, и иногда задержка была недостаточной, что означало неудачное обновление.
Затем я решил попробовать использовать метод делегата UIAlertView, чтобы определить, когда была нажата кнопка ok из предупреждения, и он работал нормально в большинстве случаев, но затем время, когда я нажимал кнопку «ОК», чтобы быстро отключить оповещение по возвращении на просмотр и данные не были перезагружены.
Есть ли лучший надежный надежный способ обновления моих данных?
Мне нужно знать, что обновление базы данных было успешным и только затем запустить метод [self loadObjects] и, возможно, сделать это автоматически.
У меня есть два метода, которые обнаруживают, когда объекты будут загружаться (например, когда кнопка была нажата) и когда они загружены. Я добавил код spinner, чтобы показать spinner, когда происходит загрузка, и уберите его, как только это будет сделано.
Не существует ли способ способов очереди, как некоторые, как в одном способе сделать так, чтобы одно не произошло, пока не произошло другое?
Если это так, я действительно ценю некоторые идеи и примеры, поскольку я мог бы просто отметить приложение как полное, но даже если мне не платят, и это благотворительная работа, у меня все еще есть желание сделать все возможное.
Спасибо за ваше время.
Сердечные приветы
Это хорошо объясняет мне. Я проделал небольшую поисковую работу после прочтения и наткнулся на это: https://parse.com/questions/customize-something-went-wrong-error Я собираюсь опробовать его и отчитаться, но он выглядит точно так же, как что я хочу. Я могу сохранить в фоновом режиме с помощью блока. Прямо сейчас я просто сохраняю в фоновом режиме. – LondonGuy
Работал отлично. Ответ был сохранен в фоновом режиме блоком. Все, что мне нужно было сделать, это обновить мой код и добавить некоторые операторы if внутри блоков. – LondonGuy