我的沙盒应用程序在10.8中正常运行,但在10.9中,似乎用户默认的.plist根本没有保存

xar*_*arp 6 macos sandbox objective-c nsuserdefaults osx-mavericks

沙盒应用程序在10.8中正常运行但在10.9中似乎用户默认.plist根本没有保存.plist的位置是:

~/Library/Containers/com.example.myapp/Data/Library/Preferences/com.example.myapp.plist
Run Code Online (Sandbox Code Playgroud)

如果我删除它,它将不会再次创建.在10.8这是有效的.

有没有人见过这个或任何人都可以提出解决方案?

xar*_*arp 9

问题解决了重启,远远不够.首选项保存正确,它可以正常工作,直到我再次删除应用程序容器文件夹.然后需要重新启动以解决此问题.


小智 7

我解决这个问题的方法是在更改.plist文件后终止'cfprefsd'守护程序进程:

ps auwx | grep cfprefsd | grep -v grep | awk'{print $ 2}'| xargs sudo kill -2

守护进程将在下次访问.plist文件后重新启动,然后将为已更改的密钥设置新值.

不幸的是,这种解决办法是必要的,但至少它可靠地运作.