gpt4 book ai didi

objective-c - 强制 'Shared User Defaults Controller'立即保存到磁盘?

转载 作者:行者123 更新时间:2023-12-03 17:05:12 25 4
gpt4 key购买 nike

我有一个使用共享用户默认 Controller 的首选项 Pane ,读取和保存首选项简直就是小菜一碟。似乎当对字段进行更改时,它们不会立即保存到 plist 文件中。当我的应用程序需要在更改后立即重新读取文件并且 plist 尚未更新时,这会产生问题。

如何强制首选项 Pane 立即更新首选项文件?

最佳答案

这会自动将您所做的任何更改立即保存到磁盘:

NSUserDefaultsController *controller = [NSUserDefaultsController sharedUserDefaultsController];
[controller setAppliesImmediately:YES];

如果您仅在特定情况下需要此功能,您还可以使用并节省一些昂贵的 I/O(您确实应该尝试让缓存机制尽可能多地缓存,而不是立即将所有内容写入磁盘):

NSUserDefaultsController *controller = [NSUserDefaultsController sharedUserDefaultsController];
[controller save:self];

此外,您确定您正在尝试解决正确的问题吗?您始终可以通过查询 NSUserDefaults 来获取最新版本的用户默认值,而无需关心当前版本是缓存在 RAM 中还是已写入磁盘。

关于objective-c - 强制 'Shared User Defaults Controller'立即保存到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com