-
Notifications
You must be signed in to change notification settings - Fork 23
Пользователь
Пользовательский класс позволяет осуществлять запросы от лица текущего активного пользователя.
Рассмотрим несколько методов класса, которые играют важную роль при работе с несколькими пользователями в приложении:
+ (instancetype)currentUser
+ (BOOL)activateUserWithID:(NSUInteger)userID
+ (NSArray *)localUsers
Рассмотрим подробнее.
+ (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"
}];