自动删除重复项或不在传递数据的uitableview中创建它们

时间:2012-04-04 04:09:33

标签: uitableview uiwebview nsmutablearray duplicates

我有uiwebview将其加载的网页网址发送到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"];

}

1 个答案:

答案 0 :(得分: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"];
}