2011-04-06 52 views
0

我已經實施inappsettings,在我的應用程序中有一個首選項視圖,可以直接在應用程序中編輯settings.bundle值。應用程序首選項只能在啓動時被讀取嗎?

但是現在我想從settings.bundle中讀取數據,但是讀取iOS programming guide我發現應該在應用程序啓動時讀取settings.bundle。

因此,無法在我的代碼中隨時訪問此首選項?如果用戶在應用程序運行時無法在任何時候更新首選項,則無法使用應用程序。

Inappsettings提供方法InAppSettings registerDefaults

- (void)initialize{ 
    if([self class] == [AppDelegate class]){ 
     [InAppSettings registerDefaults]; 
    } 
} 

但我不知道這使得它可以讀取的喜好任意時間。有什麼建議麼?

編輯:在我的應用程序我有三個視圖,一個是儀表板。另一個選項和郵件視圖以模態方式顯示。

在首選項中,用戶可以設置一些我需要發送消息的基本信息。所以當用戶剛開始打字並想改變例如傳輸網關他打開選項視圖,這是inappsettings視圖,並改變了一些東西。我想在不重新啓動應用程序的情況下閱讀這些更改。

回答

1

很明顯,蘋果公司希望在我們身上強加外部喜好UI範例。請回想一下Mail.app是如何工作的。有時候這種範例有意義,有時不適用。如果您擁有不可變的首選項設置,則不必考慮處理onPrefferenceChange,併發性,同步,操作系統備份和複製問題等的事件......但是,Apple提供的功能在它們的功能上非常有限。你甚至不能在那裏輸入一個任意的字符串(Mail.app顯然使用一些私有的API)。所以你必須做出一個選擇,你是否可以使用Apple提供的或者實現你自己的偏好系統(可能基於NSUSerDefaults之類的東西)。我實施了自己的一次,並從此使用它。我更喜歡有一個真正的應用內偏好系統。這樣做的主要優點是可以在不離開應用程序的情況下更改其價值。

+0

感謝您的建議。我用一些細節更新了我的問題。我也想過同步,但由於這是一個非常簡單的應用程序,這將是沒有問題的。 Inappsettings給了我一個很棒的用戶界面,我試圖重現那沒有成功。 – 2011-04-08 04:31:48

+0

我將inappsettings切換到InAppSettingsKit,現在我可以隨時讀取用戶的默認值。 – 2011-04-08 06:37:15

相關問題