Выполнить функцию сразу после загрузки просмотра, iphone - PullRequest
3 голосов
/ 05 марта 2010

Я создаю приложение с вкладками. Одна из вкладок предназначена для RSS-канала, который является навигационным приложением. но когда я нажимаю кнопку с вкладкой "летучая мышь", требуется время, чтобы загрузить представление этой вкладки Это связано с тем, что приложение ожидает загрузки канала с сервера. Есть ли способ загрузить вид до того, как произойдет загрузка этого канала. На данный момент я даю запрос в методе viewDidLoad. Вот что создает проблему. В какую часть я должен переместить код, чтобы представление мгновенно загружалось при нажатии кнопки на вкладке.

Ответы [ 3 ]

1 голос
/ 08 марта 2010

используйте:

[self performSelector:@selector(performRSS:) withObject:<nil afterDelay:0.3f];

или

[NSThread detachNewThreadSelector:@selector(performRSS:) toTarget:self withObject:nil];

и поместите код, связанный с RSS-потоком, в отдельную функцию с именем "executeRSS".

1 голос
/ 05 марта 2010

Я рекомендую эту замечательную статью на эту тему в iCodeBlog, это очень элегантный способ сделать это. Если вы отправите загрузку своего RSS-канала как NSOperation, это будет происходить в фоновом режиме, не блокируя основной поток.

0 голосов
/ 05 марта 2010

Я также думаю, что проблема в том, что вы не используете HTTP-запрос асинхронно (как рекомендует Apple).Смотрите этот документ.http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html

Это сработало для меня в моих приложениях.

...