2011-05-19 62 views
2

这里是我的代码来删除值。当我重新启动我的应用程序,它会显示已删除的记录也表视图删除记录临时...UITableView不从NSUserDefaults删除记录

-(void)tableView:(UITableView *)atableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [bookmarks removeObjectAtIndex:indexPath.row]; 
     [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade]; 
     [[NSUserDefaults standardUserDefaults] setObject:bookmarks forKey:@"Bookmarks"]; [self.tableView reloadData]; 
    } 
} 

请帮助。

+0

你想只删除特定的值?或完整列表? – 2011-05-19 11:45:34

+0

只有选定的值 – iProgrammer 2011-05-19 11:49:45

+0

[[[NSUserDefaults standardUserDefaults] setObject:bookmarks forKey:@“Bookmarks”] synchronize];加上这个 – 2011-05-19 11:54:02

回答

1

试试这个:

// Your code  
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
[prefs setObject:bookmarks forKey:@"Bookmarks"];  
// saving it all 
[prefs synchronize]; 
+0

它正在删除记录,但是当我试图添加记录时,它并没有添加alwaysNSMutableArray * bookmarks = [[[[NSUserDefaults standardUserDefaults] arrayForKey:@“Bookmarks”] mutableCopy];如果(!书签){0}书签= [[NSMutableArray alloc] init]; } [bookmarks addObject:[[[[self webBrowser] request] URL] absoluteString]]; [[NSUserDefaults standardUserDefaults] setObject:bookmarks forKey:@“Bookmarks”]; [书签发行]; – iProgrammer 2011-05-19 11:55:48

+0

您正在为if(!书签)中的书签分配内存。那另一个条件呢。如果在(){}之外释放数组,则需要为其分配内存。 – Nitish 2011-05-19 12:01:28

+0

好吧,我会试试这个。 – iProgrammer 2011-05-19 12:04:58