Я довольно новичок в разработке iPhone, но я близок к выпуску своего первого приложения (связанного с веб-сайтом, который я запускаю). Для приложения требуется очень большая база данных, и я решил сохранить только наиболее часто используемые данные локально, извлекая другие данные через вызов веб-службы JSON из базы данных, с которой работает мой сайт.Использование сна в приложениях для iPhone (особенно с помощью UINavigationController)
При выполнении ОК с использованием симулятора (попадание в живую БД) поиск, основанный на вызове веб-службы, занимает больше времени, чем я надеялся, что они будут работать при работе на телефоне. Эти вызовы выглядят намного хуже по сравнению с обычными поисковыми запросами. Чтобы уменьшить относительную разницу, я хотел ввести фальшивую межстраничную (страницу с индикатором активности) для собственных поисков (поиск в веб-службе уже использует один), но у меня возникла проблема с синхронизацией контроллера навигационного контроллера в сочетании с сна (п).
В любом случае, раздел поиска моего приложения является navController с вкладкой tabController. При попытке использовать такой код:
[[tabBarController.viewControllers objectAtIndex:0] pushViewController:(UIViewController *)waitingController animated:YES]; sleep(2);
Я считаю, что толчок всегда ждет сна, чтобы закончить до выполнения, когда эффект, который я хочу для ViewController для толкания, а затем приложение ждать в течение двух секунд прежде чем продолжить имитировать процесс поиска.
У меня были некоторые другие странные результаты с помощью navController, в некоторых случаях я испытывал то, что, похоже, было смятием двух отдельных контроллеров просмотра, когда тот, который я нажал как межстраничный, остался на месте по содержанию только название того, которое я хочу, выталкивает в его место.
Я уверен, что с моей стороны существует фундаментальное отсутствие понимания, поэтому я надеюсь на небольшое руководство здесь.
Cheers,
Alan.
Спасибо! Это сработало отлично. После получения данных из основного поиска я нажимаю waitController (interstitial), а затем с помощью функции performSelector с задержкой вызывается метод в appDelegate, который загружает результаты. – alan