我正在爲所有用戶在全球範圍內存儲一些首選項的應用程序工作。它通過kCFPreferencesAnyUser
in作爲CFPreferencesSetValue
的userName
參數。如何在OS X Lion中編寫「所有用戶」首選項?
在OS X版本10.7(獅子)之前,這工作得很好。但是,當此代碼在Lion上運行時,即使從管理員帳戶運行應用程序,調用也會失敗。 CFPreferencesSetValue
的文檔聲明:
請注意,如果您擁有管理員權限,則只能保存「任何用戶」的首選項。
...我看到搜索周圍所需的權限雪豹和獅子之間的變化(從管理到根)。它也似乎,我可以繼續按照蘋果的SMJobBless示例代碼使用類似的代碼...
...牢固地安裝一個輔助工具,執行特權操作...
但我注意到,kCFPreferencesAnyUser
本身的文檔聲明:
此域當前不支持。
是否正在使用幫助工具創建所有用戶首選項的正確方法?或者是否有其他一些我應該使用的支持方法?
感謝您的回答。我對你對系統偏好的含義有些困惑。我的例子中的應用程序不是「父應用程序」嗎?我需要編寫的偏好特定於我的應用程序。 – Rich
我不認爲它*完全*失敗*失敗。隨後對'CFPreferencesSynchronize'的調用返回false,表示發生了錯誤。 – Rich
值得一提的是,爲'kCFPreferencesAnyUser'域寫入首選項需要使用'kCFPreferencesCurrentHost',這會讓我耽擱一段時間(在本頁底部提到:https://developer.apple.com/庫/ MAC /文檔/的CoreFoundation /參考/ CFPreferencesUtils /參考/#的reference.html // apple_ref/DOC/UID/20001450-CH1g-130209) – Matthematics