ios - 从 NSUserdefaults 中删除 NSDictionary

标签 ios objective-c uitableview 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];

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

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

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

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

[bookmarks removeObjectAtIndex:5];

把书签放回去:

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

和同步:

[userDefaults synchronize];

关于ios - 从 NSUserdefaults 中删除 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35778678/

相关文章:

ios - _PFFaultHandlerLookupRow 保存子上下文时崩溃

ios - UITextfield 中的位置 "Clear Button"

ios - iAd 跨 View Controller (单例): Somehow not working

ios - "Delete"滑动 UITableViewCell 时不显示

ios - 如何在 iphone 中获取单元值?

iphone - 在 iPhone 应用程序中关闭拼写检查器

ios - 我的iOS项目中的GPUImage cocoapod触发了“找不到'OpenGL/OpenGL.h'文件”

objective-c - iPhone 和 iPad 的条件编码在现实中是如何工作的?

ios - xcode 8 不支持 iOS 8 中的 indexPathsForVisibleRows

ios - 使用 CoreData 中的图像高效填充 TableView | swift