0

在我的应用程序中,当您下载时contentEditingInput,用户可以选择新资产,因此我尝试在开始新资产之前终止先前的请求。不幸的是cancelContentEditingInputRequest:不起作用,我仍然取得进展,下载完成后完成块被触发。self.assetself.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
}];
4

1 回答 1

0

我是对的,我错了。我以错误的方式使用 API。cancelContentEditingInputRequest:用于取消从设备上的资产准备contentEditingInput 。要取消从 iCloud 下载,应该使用:

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

这是一个不同的主题,如果 API 是合乎逻辑的......

于 2015-06-26T06:33:03.920 回答