0

次のコードで、サブクラスのフレームが変更されているかどうかを確認します。

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    if(imageFrameSize ==  CGRectZero) {
            imageFrameSize = self.recycleBin.frame;
            NSLog(@"Frame: %@", NSStringFromCGRect(imageFrameSize));
        }
}

ここで、文字列が同じか変更されているかを確認したいと思います。基本的に履歴は history.plist に保存しています。そして、以下のデリゲートで関数を実行して、ドキュメントの URL を history.plist ファイルに保存します。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    //when push to reload is done it will disappear pulltorefresh
    [(PullToRefreshView *)[self.view viewWithTag:998] finishedLoading];

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    [self actualizeButtons];


   urlPage =[webView stringByEvaluatingJavaScriptFromString:@"document.title"];    //[[[webView request] URL]absoluteString];

   [self addHistoryFunction];


    NSLog(@"WebView Finish Load %@",[[[webView request] URL]absoluteString] );

}

この機能はうまく機能します。しかし問題は、webViewDidiFinishLoad が google ではほぼ 2 回、他の Web サイトでは 3 回以上実行されることです。そのため、addHistoryFuncation は同じページ URL で履歴を 2 回以上保存します。履歴に追加する前に urlPage 文字列を確認したいのですが、新しい文字列が更新された場合は addhistory 関数を実行し、同じ場合は addhistory 関数をスキップします。上記の CGRectZero コードと同様です。

履歴を history.plist に保存するのが私の考えです。私よりも優れている場合は、私を助けるか、私の問題を解決してください。前もって感謝します。

4

2 に答える 2

0

- (void)webViewDidFinishLoad:(UIWebView *)webView awebviewがWebページでオブジェクトのロードを終了するたびに呼び出されるため、この行を追加するためにこのメソッドが複数回呼び出されるのを防ぐための最良のアプローチ:

if ([webView isLoading]){return;)

この行は、ロードが完了したときに webview がコマンドを実行することを確認します。これが編集後の関数です。

- (void)webViewDidFinishLoad:(UIWebView *)webView {
     if ([webView isLoading]){return;)
    //when push to reload is done it will disappear pulltorefresh
    [(PullToRefreshView *)[self.view viewWithTag:998] finishedLoading];

    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    [self actualizeButtons];


   urlPage =[webView stringByEvaluatingJavaScriptFromString:@"document.title"];    //[[[webView request] URL]absoluteString];

   [self addHistoryFunction];


    NSLog(@"WebView Finish Load %@",[[[webView request] URL]absoluteString] );

}
于 2013-01-30T10:04:12.400 に答える
0

文字列と比較したい場合は、これが方法です

BOOL isTheSameStrings=[mystring isEqualToString:string2];
if (isTheSameStrings){
   NSLog(@"the are the same);
}else{
   NSLog(@"the are NOT the same);
}

または、文字列が配列で見つかったかどうかを確認したい

BOOL myArrayDoesContainMyString=[myArray containsObject:myString];
if (myArrayDoesContainMyString){
   NSLog(@"myArray contain myString);
}else{
   NSLog(@"myArray does not contain myString);
}
于 2013-01-30T10:17:53.023 に答える