0

訪問したサイトの履歴を保持するためuiwebviewに、ロードされたページのURLをに送信するがあります。uitableviewいくつかのサイトが一時的にロードを一時停止し、別のURL参照が作成されることを除いて、これはうまく機能します。redmondpie.comにアクセスしてみると、訪問したリストに50個のredmondpie.comリンクが表示されます。私はこれを間違って行っていますか、それともページの読み込み中にリンクが何度も再作成されるのをブロックするために使用できるコードがありますか?作成中のURLのすぐ隣にURLが存在する場合は、作成しないなどの方法が最適だと思います。これが現在のロード方法です。

    - (void)webViewDidFinishLoad:(UIWebView *)webView {


urlField.text = [[[[self webView]request] URL] absoluteString];

{
    NSMutableArray *history = [[[NSUserDefaults standardUserDefaults]    arrayForKey:@"History"] mutableCopy];
    if (!history) {
        history = [[NSMutableArray alloc] init];
    }
    NSString *newString  = 
    [urlField.text stringByReplacingOccurrencesOfString:@"http://" withString:@""]



    urlField.text = [NSString stringWithFormat:@"%@", newString];

    [history addObject:newString];
    [[NSUserDefaults standardUserDefaults] setObject:history forKey:@"History"];

}
4

1 に答える 1

0

これを変更して追加する前に、配列内の最後のオブジェクトをチェックして同じかどうかを確認します。

[history addObject:newString];
[[NSUserDefaults standardUserDefaults] setObject:history forKey:@"History"];

これに:

if (![newString isEqualToString:(NSString *)[history lastObject]]) {
    [history addObject:newString];
    [[NSUserDefaults standardUserDefaults] setObject:history forKey:@"History"];
}
于 2012-04-04T04:21:18.883 に答える