Где я должен хранить данные / информацию о состоянии при переключении ViewControllers? - PullRequest
0 голосов
/ 19 августа 2010

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

Вопрос: Мое приложение организовано как:

  • UITabController
    • LoginViewController (UIViewController)
    • UINavigationController
      • CustomViewController1 (UIViewController)
      • CustomViewController2 (UIViewController)
      • CustomViewController3 (UIViewController)
    • UINavigationController
      • CustomerViewController3 (это UITableView, который позволяет пользователю перейти к подробному виду, а затем к представлению карты)

Как мне бытьсохранить ввод от пользователя?

  1. Когда пользователь входит в систему, мне нужно кэшировать его имя пользователя и пароль, чтобы я мог передать его веб-сервисам.
  2. Кроме того, у меня есть возможность разрешить пользователю сохранять свое имя пользователя и пароль.Где мне хранить эту информацию?
  3. В CustomViewController1,2,3 я собираю различные входные данные, а затем в какой-то момент передаю их веб-службе.Мне нужно сохранить это и ответ веб-службы, чтобы, если пользователь хочет отменить, у меня были необходимые идентификаторы для отправки в веб-службу «отмена».
  4. Как создать «глобальную переменную»"что может быть сохранено, и тогда любой контроллер представления может видеть?

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

У меня большая часть Руководства по программированию для Apple iOS, и он поддерживает распечатку PDF-файлов, но они могут действительно пугать кого-то новичка на платформе, просто пытающегося начать работу.

Еще раз спасибо!Jason

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Ваш первый проход вообще может быть выполнен с помощью класса NSUserDefaults (примеры кода в документации). Это место для постоянного хранения простой информации и доступа к ней из любой точки вашего приложения. По мере того, как вы узнаете больше об API и определите более специфические потребности, вы сможете расширить и использовать локальное хранилище файловой системы, Core Data и т. Д.

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

Если вы не ищете способ хранения данных, относящихся к текущему пользователю, но просто имеете данные, доступные для всех контроллеров представления, есть два способа.

a) рекомендуется: создать класс singleton,и импортировать этот класс в контроллеры представления b) объявить объекты в делегате приложения и получить к ним доступ с помощью [[UIApplication SharedApplication] делегат] .objectname.

Я должен признаться, что сейчас я использую b) blush.Это будет охватывать ваши пункты 1,2,4, я думаю.Что касается пункта 3, см. Рекомендации jbm - или запишите их в файл в песочнице приложения, который я не рекомендую для паролей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...