我需要在后台显示一个计时器,用于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];
}
答案 0 :(得分:0)
NSTimer
不适合此工作,因为该课程要求您指定时间间隔。你想要做的是运行“秒表”。您可以通过在加载开始时和通过实现以下UIWebViewDelegate
方法完成时保存时间戳来实现此目的:
- (void)webViewDidStartLoad:(UIWebView *)webView;
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;
您可以使用NSDate
来获取此时间戳(调用[NSDate date]
),使用time(3)
函数等。获取两个时间戳的差异可以得出您的间隔,即您的加载时间