0

我有一个uiwebview将其加载的页面 url 发送到 auitableview以保留访问站点的历史记录。它工作得很好,除了一些站点暂停加载会导致创建另一个 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 回答