在我的mac应用程序中,我使用NSUserDefaults在会话中存储值。此NSUserDefaults只为相应的系统级别用户保留会话值。但是现在我想使用对所有系统级用户都常见的会话值。如果我从admin存储会话值,那么任何系统用户都应该访问它(针对Ex:来宾用户)。
建议你的答案来实现这一点。
编辑内容:
我使用CFPreferences存储所有系统用户的会话值--参考迈克尔的答案。
代码:
在CFPreferences中保存值
CFStringRef appID = CFSTR("com.company.test");
CFStringRef textColorKey = CFSTR("test123");
CFStringRef colorBLUE = CFSTR("BLUE");
CFPreferencesSetValue (textColorKey,
colorBLUE,
appID,
kCFPreferencesAnyUser,
kCFPreferencesCurrentHost
);
CFPreferencesSynchronize(appID,
kCFPreferencesAnyUser,
kCFPreferencesCurrentHost);从CFPreferences检索
CFStringRef textColorKey = CFSTR("test123");
CFStringRef textColor;
// Read the preference.
CFStringRef appID = CFSTR("com.company.test");
textColor = (CFStringRef)CFPreferencesCopyValue(textColorKey,
appID,
kCFPreferencesAnyUser,
kCFPreferencesCurrentHost);但它总是能得到零值。请指出我在这里缺少的是什么。
发布于 2015-03-04 19:56:22
如果您在NSUserDefaults文档的前几段中查看,您将看到以下提示:
NSUserDefaults类目前不支持每个主机的首选项。要做到这一点,您必须使用CFPreferences API (请参阅Preferences实用程序引用)。但是,NSUserDefaults正确地读取每个主机的首选项,因此您可以安全地将CFPreferences代码与NSUserDefaults代码混合使用。
CFPreferences确实有一个钥匙,但它也是一个用于您所要做的事情的尾部疼痛的使用。其他人建议使用解决方法涉及将文件隐藏在机器上所有用户都可读和可写的位置。,但是如果您真的想要正确地完成这个任务,您需要想出一个涉及编写一个单独的工具(获取根/管理权限)来设置这些特权,通过应用程序的SMJobBless调用的解决方案。
https://stackoverflow.com/questions/28856634
复制相似问题