приложение для iPhone: Как получить значение по умолчанию от root.plist?

Рассмотрите использование пространств имен:

(function() {
    var local_var = 'foo';
    global_var = 'bar'; // this.global_var and window.global_var also work

    function local_function() {}
    global_function = function() {};
})();

И local_function и global_function имеют доступ ко всем локальным и глобальным переменным.

Редактирование : Другой общий шаблон:

var ns = (function() {
    // local stuff
    function foo() {}
    function bar() {}
    function baz() {} // this one stays invisible

    // stuff visible in namespace object
    return {
        foo : foo,
        bar : bar
    };
})();

return к свойствам редактора можно теперь получить доступ через объект пространства имен, например, ns.foo, в то время как все еще сдерживающий доступ к локальным определениям.

13
задан Mike Weller 8 May 2012 в 11:44
поделиться

2 ответа

Я делаю это сразу после запуска, прежде чем попытаюсь получить свои настройки:

    userDefaultsValuesPath=[[NSBundle mainBundle] pathForResource:@"UserDefaults"
                                                           ofType:@"plist"];
    userDefaultsValuesDict=[NSDictionary dictionaryWithContentsOfFile:userDefaultsValuesPath];

    // set them in the standard user defaults
    [[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsValuesDict];

    if (![[NSUserDefaults standardUserDefaults] synchronize])
        NSLog(@"not successful in writing the default prefs");
4
ответ дан 1 December 2019 в 21:38
поделиться

В моем делегате приложения я отменяю метод + инициализация и регистрация новых настроек приложения по умолчанию.

Например:

+ (void) initialize {
    if ([self class] == [MyAppDelegate class]) {        
        // initialize user defaults dictionary
        BOOL isFirstTimeRun = YES;
        BOOL isKeychainTurnedOn = NO;
        BOOL isSSLTurnedOn = YES;
        NSString *testURLString = @"http://stackoverflow.com";
        NSMutableDictionary *resourceDict = [NSMutableDictionary dictionary];
        [resourceDict setObject:[NSNumber numberWithBool:isFirstTimeRun] forKey:kIsFirstTimeRunKey];
        [resourceDict setObject:[NSNumber numberWithBool:isKeychainTurnedOn] forKey:kIsKeychainTurnedOnKey];
        [resourceDict setObject:[NSNumber numberWithBool:isSSLTurnedOn] forKey:kIsSSLTurnedOnKey];
        [resourceDict setObject:testURLString forKey:kTestURLString];
        [[NSUserDefaults standardUserDefaults] registerDefaults:resourceDict];
    }
}
0
ответ дан 1 December 2019 в 21:38
поделиться