Как эффективно сохранить универсальную константу в приложении для iPhone? - PullRequest
1 голос
/ 20 августа 2010

Я пытаюсь создать приложение для iPhone, в котором я подключаюсь к API и получаю строку безопасности и идентификатор для отправки запросов к API.

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

Как эффективно хранить эту информацию, чтобы ее могли легко получить доступ к различным классам?

Заранее спасибо!AJ

Ответы [ 2 ]

1 голос
/ 20 августа 2010

Использование приложения-делегата кажется «старой школой», но я думаю, что это плохая привычка. Вы превращаете делегат приложения в гигантскую глобальную переменную, которая никогда не бывает хорошей.

Хранение в NSUserDefaults работает, хотя, если это не тот параметр, который вы хотите сохранить (и вы, возможно, не учли соображения безопасности), это может вернуться к вам позже.

Я хардкор: я бы создал экземпляр класса модели данных в вашем делегате приложения для хранения подобной информации, и передавал бы его вашему корневому контроллеру представления и далее любым другим контроллерам представления, которым необходим доступ к информации. Преимущества? Никаких глобальных переменных, ничего не сохраняется для пользовательских настроек по умолчанию, и только те части вашего кода, которые действительно нуждаются в информации, когда-либо видят ее (уменьшает действие на расстоянии). Недостатки? Не так легко настроить, как другие два метода (по крайней мере, в первый раз).

0 голосов
/ 20 августа 2010

Как вы можете себе представить, есть много способов, вот один, использующий NSUserDefaults:

Хранение:

[[NSUserDefaults standardDefaults]setObject:@"some string" forKey:@"key"];

Получение:

NSString *key = [[NSUserDefaults standardDefaults]objectForKey:@"key"];
...