Skip to content

Пользователь

Andrew Shmig edited this page Jul 6, 2013 · 12 revisions

Пользовательский класс позволяет осуществлять запросы от лица текущего активного пользователя.

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

  1. + (instancetype)currentUser
  2. + (BOOL)activateUserWithID:(NSUInteger)userID
  3. + (NSArray *)localUsers

Рассмотрим подробнее.

  1. + (instancetype)currentUser

Получение текущего активного пользователя. Вот как описан этот метод в документации:

документация 2. + (BOOL)activateUserWithID:(NSUInteger)userID

Делает активным пользователя с указанным пользовательским идентификатором. Полезный метод, если ваше приложение планирует подключать несколько учетных записей пользователя. 3. + (NSArray *)localUsers

Получение списка пользователей находящихся в хранилище. В массиве будут только пользовательские идентификаторы.


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

  • Начинать выполнение запросов немедленно

По умолчанию все запросы начинают своё выполнение немедленно после вызова метода в котором они были созданы. Для того, чтобы получить управление над стартом/отменой выполнением запросов необходимо поступить следующим образом:

[VKUser currentUser].startAllRequestsImmediately = NO; // работает для всех последующих запросов, а не только для одного

VKRequest *infoRequest = [[VKUser currentUser] infoWithCustomOptions:@{@"uids": @"1"}];

// какие-то действия

[infoRequest start];

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

[VKUser currentUser].startAllRequestsImmediately = NO;
VKRequest *infoRequest = [[VKUser currentUser] infoWithCustomOptions:@{....}];
[VKUser currentUser].startAllRequestsImmediately = YES;

//какие-то действия

[[VKUser currentUser] groupsJoinWithCustomOptions:@{...}]; // выполнение запроса стартует немедленно
  • Оффлайн режим

Позволяет осуществлять все последующие запросы в оффлайн режиме, режиме, когда данные кэша не удаляются даже в случае истечения их срока жизни.


Пример получения пользователей находящихся в определенной группе:

[VKUser currentUser].delegate = self;
[[VKUser currentUser] groupsGetMembersWithCustomOptions:@{
    @"group_id": @"1",
    @"count" : @"100",
    @"offset": @"0"
}];
Clone this wiki locally