Box IOS SDK V2 отменить загрузку / выгрузку
Я использую SDK target-c box для управления файлами с помощью специального метода
[[BoxSDK sharedSDK].filesManager downloadFileWithID:fileID
outputStream:outputStream
requestBuilder:nil
success:successBlock
failure:failureBlock
progress:progressBlock];
Мне нужно отменить задачу загрузки, но я не могу найти способ сделать это! Мне также нужно иметь возможность отменить загрузку задач, но я думаю, что способ будет такой же...
Кому-нибудь удается этого добиться?
1 ответ
Решение
filesManager возвращает BoxAPIDataOperation. В конечном итоге BoxAPIDataOperation наследуется от базового класса NSOperation и Box, поскольку это BoxAPIOperation. Чтобы отменить BoxAPIOperation, вы просто отправляете ему сообщение об отмене.
Фактически все менеджеры ресурсов в BoxSDK возвращают классы, которые наследуются от BoxAPIOperation. Вы можете найти (аннулировать) отмену в BoxAPIOperation.m.
Так что в вашем случае вы хотели бы что-то вроде этого
// property to store pointer to currently active download operation.
// it is weak, because you don't want to retain it. after download is completed, cancelled or failed
@property (nonatomic, readwrite, weak) BoxAPIDataOperation *downloadOperation;
....
self.downloadOperation = [[BoxSDK sharedSDK].filesManager downloadFileWithID:fileID
outputStream:outputStream
requestBuilder:nil
success:successBlock
failure:failureBlock
progress:progressBlock];
...
- (void)dealloc
{
[self.downloadOperation cancel];
}
// only if want to keep self in object and want to just cancel operation
- (void)userPressedCancelButton:(id)sender
{
[self.downloadOperation cancel];
}