Как отобразить NSTimer для времени загрузки веб-запроса в xcode? - PullRequest
0 голосов
/ 20 сентября 2010

Мне нужно отобразить таймер в фоновом режиме для времени загрузки веб-запроса в формате минуты: секунды. При успешной загрузке веб-запроса таймер должен остановиться. Мой код здесь:

@interface TimerWithWebrequestViewController : UIViewController {
    IBOutlet UIWebView *webView;
    IBOutlet UILabel *lbl;
    int mainInt;
    NSTimer *randomMain;
}
@property(nonatomic,retain) UIWebView *webView;
-(void)upDate;
@end

@implementation TimerWithWebrequestViewController
@synthesize webView;
-(void)viewDidLoad
{
 NSString *urlAdd = @"http://www.google.com";
 NSURL *url = [NSURL URLWithString:urlAdd];
 NSURLRequest *reqObj = [NSURLRequest requestWithURL:url];
 [webView loadRequest:reqObj];
 [self performSelectorInBackground:@selector (upDate) withObject:nil];

}
-(void)upDate
{
 mainInt = 0;
 randomMain = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(randomMainVoid) userInfo:nil repeats:YES];

}
-(void)randomMainVoid{
 mainInt += 1;
 lbl.text = [NSString stringWithFormat:@"%d",mainInt];

}

1 Ответ

0 голосов
/ 20 сентября 2010

NSTimer не подходит для этой работы, так как класс требует, чтобы вы указали временной интервал.Что вы хотите сделать, это запустить «секундомер».Этого можно добиться, сохранив отметку времени при запуске и завершении загрузки, применив следующие методы UIWebViewDelegate:

- (void)webViewDidStartLoad:(UIWebView *)webView;
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;

. Вы можете использовать NSDate для этой отметки времени (вызов [NSDate date])., используя функцию time(3) и т. д. Если взять разницу двух временных меток, вы получите ваш интервал, то есть время загрузки.

...