有什么办法可以增加交易性NSUserDefaults
吗?我需要类似数据库处理程序上众所周知的开始 - 提交 - 恢复功能,因此在某些情况下我可以恢复对用户默认值的修改。当然,此用户默认值的其他用户将在事务期间被阻止写入。
注1:synchronize
上述类的方法不会做这件事,因为:
- 根据文档,框架也会不时调用它
- 没有“还原”
注意2:我看到了dictionaryRepresentation
,registerDefaults
我可以实现自己的事务机制(在内存中保存旧默认值的副本/甚至在事务期间保存到 plist 中)。但也许有一个现成的解决方案?
我的用例:
我有一个类似向导的屏幕流程,用户可以在每个屏幕上编辑一些设置。在当前实现中,当用户移动到向导的下一个屏幕时,这些设置会立即存储在默认值中。现在这个向导可以被其他一些事件打断(甚至用户可以在任何屏幕上选择退出/取消向导),在这种情况下我想回滚修改。