Ich bin ziemlich neu in der iPhone Entwicklung, aber ich bin kurz davor meine erste App zu veröffentlichen (im Zusammenhang mit einer Website die ich betreibe). Die App benötigt eine sehr große Datenbank und als solche habe ich beschlossen, nur die am häufigsten verwendeten Daten lokal zu speichern und die anderen Daten über einen JSON-Webservice-Aufruf aus der Datenbank abzurufen, auf der meine Website läuft.Verwenden von Sleep in iPhone Apps (speziell mit UINavigationController)
Während der OK-Vorgang mit dem Simulator (Live-DB-Suche) dauerte die Suche nach dem Web-Service-Anruf länger als ich mir das gewünscht hätte. Diese Aufrufe sehen im Vergleich zu den sofortigen nativen Suchen viel schlechter aus. Um den relativen Unterschied zu reduzieren, wollte ich ein gefälschtes Interstitial (Seite mit Aktivitätsanzeige) für die nativen Suchanfragen einfügen (die Webdienst-Suche verwendet bereits eins), aber ich hatte ein Problem mit dem Timing von Navigationssteuerungs-Pushs, wenn kombiniert Schlaf (n).
Wie auch immer, der Suchbereich meiner App ist ein navController mit einem tabController Registerkarte. Beim Versuch, Code wie folgt zu verwenden:
[[tabBarController.viewControllers objectAtIndex:0] pushViewController:(UIViewController *)waitingController animated:YES]; sleep(2);
Ich finde, dass der Push wartet immer für den Schlaf vor der Ausführung zu beenden, wenn der Effekt, den ich will, ist für die Viewcontroller geschoben werden und dann zwei Sekunden lang die App warten bevor Sie fortfahren, den Suchprozess zu simulieren.
Ich hatte einige andere seltsame Ergebnisse mit navController Pushs, bei einigen Gelegenheiten habe ich erlebt, was ein Maischen von zwei separaten Viewcontrollern ist, wenn der, den ich als Interstitial geschoben habe inhaltlich mit bleibt nur der Titel desjenigen, den ich möchte, ist an seinem Platz geblieben.
Ich bin mir sicher, dass es einen grundlegenden Mangel an Verständnis auf meiner Seite zu beschuldigen gibt, so hoffe ich auf ein bisschen Anleitung hier.
Prost,
Alan.
Danke! Das hat perfekt funktioniert. Nachdem ich die Daten aus der nativen Suche zurückgeholt habe, drücke ich den waitController (Interstitial) und verwende dann performSelector mit einer Verzögerung, wenn ich die Methode in appDelegate aufruft, die die Ergebnisse lädt. – alan