2012-04-04 2 views
0

Ich habe eine uiwebview, die ihre geladene Seite URL an eine uitableview sendet, um eine Geschichte der besuchten Websites zu behalten. Es funktioniert gut, außer dass einige Sites den Ladevorgang kurz unterbrechen, wodurch ein anderer URL-Verweis erstellt wird. Versuchen Sie, zu redmondpie.com zu gehen, und ich am Ende mit 50 Redmondpie.com-Verbindungen in meiner besuchten Liste. Mache ich das falsch oder gibt es einen Code, den ich verwenden kann, um den Link zu blockieren, der immer wieder neu erstellt wird, während die Seite geladen wird. Ich denke, die beste Option wäre etwas, wenn die URL direkt neben der erstellten existiert, dann kreiere sie nicht, oder so etwas. Heres, wie es jetzt geladen ist.Dubletten automatisch entfernen oder einfach nicht in uitableview aus übergebenen Daten erstellen

- (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"]; 

} 

Antwort

0

Überprüfen Sie das letzte Objekt in dem Feld, um zu sehen, ob es die gleiche ist, bevor es durch die Änderung dieser Zugabe:

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

dazu:

if (![newString isEqualToString:(NSString *)[history lastObject]]) { 
    [history addObject:newString]; 
    [[NSUserDefaults standardUserDefaults] setObject:history forKey:@"History"]; 
} 
+1

Das funktionierte super, Danke ! – user1264599

Verwandte Themen