如何在xcode中显示NSTimer的webrequest加载时间?

时间:2010-09-20 05:48:00

标签: iphone uiwebview ios nstimer

我需要在后台显示一个计时器,用于webrequest加载时间的分钟:秒格式。当webrequest成功加载时,计时器必须停止。我的代码在这里:

@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 :(得分:0)

NSTimer不适合此工作,因为该课程要求您指定时间间隔。你想要做的是运行“秒表”。您可以通过在加载开始时和通过实现以下UIWebViewDelegate方法完成时保存时间戳来实现此目的:

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

您可以使用NSDate来获取此时间戳(调用[NSDate date]),使用time(3)函数等。获取两个时间戳的差异可以得出您的间隔,即您的加载时间