2009-06-02 50 views
0

在我正在處理的應用程序中,我正在生成用戶名和密碼並將它們存儲在[NSUserDefaults standardUserDefaults]中。我知道您可以從中檢索一些系統級的信息;這是否意味着手機上的所有應用程序都可以訪問那裏的所有內容?我目前正在使用與我的應用程序名稱相關的一些字符串作爲前綴,以避免與其他應用程序衝突,但這是否有必要?如果是這樣,是否有更好的方法來避免這種碰撞?我應該擔心NSUserDefaults中的衝突嗎?

回答

1

NSUserDefaults使用「搜索路徑」的抽象概念來查找默認值。除非您自定義它,否則標準用戶默認對象將在三個位置查找;啓動參數,應用程序的首選項和系統首選項(例如全局本地化選項)。如果您想在多個應用程序之間共享相同的偏好,您也可以手動爲其他搜索路徑添加標識符(我還沒有在iPhone上試過這個,所以我不確定它是否可用於Cocoa Touch或者如果您只能在OS X上執行此操作)。

您可能與系統範圍的首選項之一發生衝突,但由於您的應用程序的搜索路徑首先被搜索,所以這絕不是問題。

2

編號NSUserDefaults不是系統範圍的。把它們命名爲任何你喜歡的,你都會好起來的。 :)

8

您還應該在鑰匙串內存儲用戶名和密碼,而不是用戶默認值。將這些數據存儲在用戶默認值中時,可以在將數據備份到Mac時進行窺探。

相關問題