簡體   English   中英

如何使用Settings.bundle

[英]How to work with Settings.bundle

我正在使用最新的SDK開發iOS應用。

我用Root.plist和另外四個.plist創建了Settings.bundle ,這些文件上的每個設置都有每個默認值。

這是我第一次使用Settings.bundle ,我迷路了。 我發現了這個問題 ,他們說我每次運行應用程序時都必須閱讀Settings.bundle默認值,但我不明白為什么。

我想我必須在這里繼續使用NSUserDefaults來讀取設置值。

我有以下問題:

  1. 如何使用“設置”應用讀取在這些設置上設置的值?
  2. 我怎么知道用戶是否更改了一個或多個這些值? 用戶使應用程序進入后台,打開“設置應用程序”並進行更改。 我如何以編程方式知道這一點?
  3. 如何保存任何修改(設置值的更改)並在“設置”應用程序上看到該更改?

順便說一句,現在我有以下代碼:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    // Set the application defaults
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if (![defaults boolForKey:@"firstRun"])
    {
        NSDictionary *appDefaults = [PreferenceDefaultValues dictionary];
        [defaults registerDefaults:appDefaults];

        [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstRun"];

        [defaults synchronize];
    }

    return YES;
}
  1. 可以使用NSUserDefaults訪問Settings.bundle plist中任何首選項的identifier 例如,如果您有一個帶有名為allowDiagnostics的標識符的首選項,則可以使用[NSUserDefaults standardUserDefaults] boolForKey:@"allowDiagnostics"]訪問該項目的值(假設它是BOOL項)。

  2. 您可以使用NSUserDefaultsDidChangeNotification來通知您的首選項更改。

  3. 您閱讀它們的方式相同。 繼續1的示例, [NSUserDefaults standardUserDefaults] setBool:YES forKey:@"allowDiagnostics"] 但是請注意,允許用戶從多個位置(Settings.bundle和應用程序中的某個位置)更改選項可能會使用戶感到困惑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM