2011-07-24 61 views
0

我有一個需要密碼的應用程序,它是在應用程序本身中設置的。但是,一旦設置了密碼,如果用戶忘記密碼並需要重置密碼,我認爲我們可以在Settings.bundle中重置密碼,並希望設備會提示輸入密碼以進行此類更改。Settings.bundle侷限性

目標是讓設備的擁有者能夠重置密碼。如果其他人重置密碼,他們將無法訪問該應用程序。

我研究並發現第三方開發人員無法使用按鈕(如Safari的「清除歷史記錄」和「清除緩存」)。

我在Settings.bundle中創建了一個切換開關,它以「Off」開頭並標記爲「Reset Password」。當用戶打開並返回到應用程序時,它會提示他們設置新密碼。

但是 - 我找不到一種方法來編程方式在此時將首選項中的切換切換回「關」,因此每次從該點打開應用程序時都不會提示用戶設置新密碼除非他們回到設置並關閉切換。

我開始認爲這根本不可能。有人知道更多可以插入嗎?

問題的第二部分是是否有辦法要求用戶輸入設備密碼以進行更改?如果有辦法提示輸入設備密碼,我將能夠使用該密碼作爲安全措施,以便他們重置密碼。

非常感謝您的幫助!

+0

「設備密碼」是指用於解鎖設備的密碼嗎? – BoltClock

+0

我認爲這將是下載應用程序所需的「Apple ID密碼」... – RanLearns

+0

使用Apple ID密碼作爲保護不會有任何區別。其他人可以更改與設備關聯的Apple ID,然後打開您的應用並更改密碼。註銷按鈕沒有保護。 – ughoavgfhw

回答

1

存儲在應用程序設置中的數據可通過NSUserDefaults獲取。您可以使用boolForKey:方法通過交換機的標識符作爲參數來獲取ToggleSwitch的狀態。您也可以使用setBool:forKey方法設置其狀態。