iPhone-глобальная переменная в раскадровке


Я хочу иметь глобальный массив / переменную в приложении для iPhone, которое использует раскадровку. Есть ли способ получить доступ к такой глобальной переменной из нескольких различных экранов раскадровки?

Спасибо Кевин

2 2

2 ответа:

Часть раскадровки несколько неуместна: стандартный способ достижения этого в cocoa-определить объектsingleton в качестве модели, разделить его заголовок между контроллерами, определенными в приложении (через раскадровку или иным образом), и создать экземпляр общей модели в коде запуска приложения.

Для получения информации о реализации синглетов в Objective C прочитайте Эту ссылку.

Может быть, проще всего хранить информацию в NSUserDefaults. Он будет доступен везде в приложении, так что это должно быть то, что вы хотите. Я публикую фрагмент, если вы не знаете, как с ним работать:)

Как установить его:

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
BOOL yourVariable = YES;
[settings setBool:yourVariable forKey:@"myVariableKey"];
[settings synchronize];

Как его получить:

NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
BOOL yourVariable = [settings boolForKey:@"myVariableKey"];

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

[settings setValue:@"Hello!" forKey:@"welcomeMessage"];