从 NSUserdefaults 中删除 NSDictionary

Remove NSDictionary from NSUserdefaults

我想删除存储在 NSUserdefaults 中的 NSDictionary。 我试过这个:

[NSUserDefaults removeObjectForKey:@"bookmarks"];

但是,我的所有收藏都被删除了

如何删除一个收藏夹?

我在这里发现了同样的问题 - Remove object of NSUserDefault by tableview cell

谢谢大家

获取书签字典,创建一个可变副本,以便您可以对其进行修改:

NSMutableDictionary *bookmarks = [[userDefaults objectForKey:@"bookmarks"] mutableCopy];

删除你想要的:

[bookmarks removeObjectForKey:@"Bookmark be gone"];

放回书签:

[userDefaults setObject:bookmarks forKey:@"bookmarks"];

并同步:

[userDefaults synchronize];

EDIT 根据 OP 的评论,听起来它可能在数组中,而不是字典中。原理是一样的:

获取书签数组,创建一个可变副本,以便您可以对其进行修改:

NSMutableArray *bookmarks = [[userDefaults objectForKey:@"bookmarks"] mutableCopy];

删除你想要的那个(找到你可能需要迭代数组的对象的索引。参见this question):

[bookmarks removeObjectAtIndex:5];

放回书签:

[userDefaults setObject:bookmarks forKey:@"bookmarks"];

并同步:

[userDefaults synchronize];