現在、私はまだいくつかのドキュメントとチュートリアルを読んでいNSTimerます。私の現在の理解から、タイマーを呼び出して、それが繰り返されるようにメソッドを与えます。それからアイデアが浮かびました。(他のアプリプロジェクトに取り組んでいます)
私がやろうとしていること
- 埋め込む
UIWebView - 現在のURL(絶対文字列)をチェックするメソッドを使用して
NSTimer(おそらく0.5秒)を実装します。指定したものでない場合は、URLをリダイレクトします。UIWebViewUIWebView
実装したいコードがあります。その目的は、知識を修正し、UIWebView作業NSTimerを開始する前にその妥当性を確認することです(まだドキュメントを読んでいます。詳細を確認して、もっと試してみたいと思います。それに取り組む前に)
今私にとって紛らわしい部分は、私のメソッドは互換性がありNSTimerますか?メソッドNSTimer内で使用することはもっともらしいでしょうか?UIWebView viewDidLoadアプリが0.5秒ごとにメソッドを継続的に実行するため、メモリの過負荷/クラッシュが発生しますか?
例NSTimer:(間違っている場合は訂正してください。ただし、ユーザーがにいる限り永久に実行したいので、UIWebViewこのコードセットのみが必要で、インクルードは含まれませんNSRunLoop)
NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 2.0
target: self
selector:@selector(onTick:)
userInfo: nil repeats:NO];
-(void)onTick:(NSTimer *)timer {
//do smth
}
EDIT2- @Robert Ryan、これは私が使用しているコードです(これは私が最初にこれに変更したときにちょうど今動作します)**(range2セクションをブロックした場合、エラードメインエラー-999は停止しました。しかしビューはまだロードされません)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *currentURL = [[request URL] absoluteString];
NSRange range1= [currentURL rangeOfString:@"news"];
NSRange range2= [currentURL rangeOfString:@"pdf"];
if (range1.location == NSNotFound)
{
NSURL *url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return NO; //no to this if its not found.
}
if(range2.location==NSNotFound)
{
NSURL * url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return NO; //no to this if its not found
}
return YES; //everything else ok
}
EDIT3-NSRange range1とrange2の両方を1つのステートメントに組み合わせると、再び機能します(1時間後も機能することを願っています。xD)
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSString *currentURL = [[request URL] absoluteString];
NSRange range1= [currentURL rangeOfString:@"news"];
NSRange range2= [currentURL rangeOfString:@"pdf"];
if (range1.location == NSNotFound & range2.location==NSNotFound)
{
NSURL *url = [NSURL URLWithString:@"http://www.imc.jhmi.edu/news.html"];
[webView loadRequest:[NSURLRequest requestWithURL:url]];
return NO;
}
return YES;
}