2015-06-25 3 views
0

В моем приложении, когда вы загружаете contentEditingInput, пользователь может выбрать новый актив, поэтому я попытался убить предыдущий запрос перед тем, как начать новый. К сожалению, cancelContentEditingInputRequest: не работает, и я все еще получаю прогресс, и блок завершения запускается, когда загрузка выполнена. self.asset и self.requestId ожидаемые значения. Проблема возникает при загрузке актива из iCloud. Я использовал API неправильно?Отменить запрос на редактирование контента

if(self.requestId) { 
    [self.asset cancelContentEditingInputRequest:self.requestId]; 
} 

PHContentEditingInputRequestOptions *options = [PHContentEditingInputRequestOptions new]; 
options.networkAccessAllowed = YES; 
options.progressHandler = ^(double progress, BOOL *stop) { 
    // update UI 
}; 

self.asset = newAsset; 
self.requestId = [self.asset requestContentEditingInputWithOptions:options completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) { 
    self.requestId = 0; 

    // handle content editing input 
}]; 

ответ

0

Я был прав, когда я ошибался. Я использовал API неправильно. cancelContentEditingInputRequest: используется для отмены подготовки contentEditingInput из актива на устройстве. Чтобы отменить загрузку из ICloud следует использовать:

options.progressHandler = ^(double progress, BOOL *stop) { 
    *stop = YES; 
}; 

Это другая тема, если API логично ...

Смежные вопросы