Каков наилучший способ получить значение из NSUserDefaults при загрузке приложения и сохранить его в глобальной переменной? - PullRequest
2 голосов
/ 07 октября 2011

Каков наилучший способ получить значение из NSUserDefaults при загрузке приложения и сохранить его в глобальной переменной?

Я мог просто нажимать [[NSUserDefaults standardUserDefaults] objectForKey:@"Theme"] каждый раз, когда хотел получить доступ к сохраненному значению, нокаждый раз он попадал бы на диск, и это было бы плохо (мне нужно значение для ячеек UITableView).Что я хотел бы сделать - это сохранить это значение в глобальной переменной при загрузке, а затем использовать эту переменную во всем приложении.

Какой лучший способ сделать это?Очевидно, я не могу сделать константу, потому что [[NSUserDefaults standardUserDefaults] objectForKey:@"Theme"] не может быть скомпилирована как константа.Как мне сделать глобальную переменную для этого?Есть ли способ поместить его в файл main.m или Prefix.pch?Я бы не хотел, чтобы мне приходилось каждый раз сталкиваться с приложением «Делегат» на протяжении всего моего приложения.

1 Ответ

3 голосов
/ 07 октября 2011

"NSUserDefaults кэширует информацию, чтобы избежать необходимости открывать пользовательскую базу данных по умолчанию каждый раз, когда вам требуется значение по умолчанию." - Ссылка на класс NSUserDefaults

Однако, если вы действительно хотите, чтобы эта «константа» (хотя она не была истинной константой), сделайте что-то вроде этого

* пч:.

extern NSString *themeString;

AppDelegate.m:

NSString *themeString = nil;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ...
    themeString = [[[NSUserDefaults standardUserDefaults] objectForKey:@"Theme"] copy];
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...