Реализовал класс STGTSessionManager.
Доступ к менеджеру через синглтон [STGTSessionManager sharedManager]
Доступные методы:
(void)startSessionForUID:(NSString )uid AuthDelegate:(id)authDelegate — стартует сессию с uid и authDelegate.
После старта сессия становится «текущей» и данные этой сессии отображаются во вьюхах.
Через @property (nonatomic, strong) NSString currentSessionUID можно переключать запущенные сессии для отображения в интерфейсе проги. Если передать отсутствующий uid, то ничего не изменится. Можно передать nil — тогда ничего показываться не будет.
(void)stopSessionForUID:(NSString *)uid — остановить сессию с данным uid. Сессия перестает быть «текущей», если была до этого таковой. Значение currentSessionUID становится в этом случае nil. Останавливается трекинг и сессия переходит в режим «finishing». Когда количество неотсинхрённых данных становится равно 0, сессия посылает менеджеру - (void)sessionCompletionFinished:(id)sender, останавливает синкер и переходит в режим «completed». Сессия не удаляется из памяти для быстрого повторного запуска при необходимости.
(void)cleanCompleteSessions — удаляет все сессии в режиме «completed». Вызывается в AppDelegate в методе - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
Необходимо реализовать хранение раздельно по каждому пользователю (в отдельных документах).
Идентификатор пользователя можно выяснить с помощью авторизованного запроса (уточню чуть позже какого именно).