Ios 取消通过操作启动的请求

Ios 取消通过操作启动的请求,ios,swift,Ios,Swift,我有一个OperationQueue,在这里我启动多个PHImageRequest,以便通过一个操作加载图像。但是如果我不再需要图像,我想取消请求。图像在collectionView中。起初我想查看isCancelled变量,但这是不可能的,因为我无法覆盖它。。。 我尝试在请求之后放置一个循环,在请求未完成时循环,并检查isCancelled是否为真,如果为真,则取消图像请求我已摆脱此解决方案,它导致了太多错误,图像未加载 我提出了一个解决方案,但是isCancelled可以在很短的时间内取消映

我有一个OperationQueue,在这里我启动多个PHImageRequest,以便通过一个操作加载图像。但是如果我不再需要图像,我想取消请求。图像在collectionView中。起初我想查看isCancelled变量,但这是不可能的,因为我无法覆盖它。。。 我尝试在请求之后放置一个循环,在请求未完成时循环,并检查isCancelled是否为真,如果为真,则取消图像请求我已摆脱此解决方案,它导致了太多错误,图像未加载

我提出了一个解决方案,但是isCancelled可以在很短的时间内取消映像请求

如果有人有适当的方法来取消请求,我就在这里好了,在下面的注释中,我在调用CancelImageRequestId的操作中添加了一个公共方法。看起来很好用!在调用cancelImageRequest时,请确保也调用cancel方法,否则会出现一些任务错误

func cancelImageRequest() {
    if let requestId = requestId {
        HomeViewController.imageManager.cancelImageRequest(requestId)
    }
}

你能多给我看看你的操作码吗?从映像管理器请求映像是一项异步任务,因此在没有某些详细预防措施的情况下,它不容易被简单地包装在操作中。这是90%的代码,10%只是用于设置要获取的资产的构造函数和imageLoadingCompleteHandler的setter。我只是不明白为什么我需要采取预防措施,比如,当操作启动时,它启动main或start函数。那么,将操作添加到OperationQueue只是将操作放入队列并同时启动它?如果操作是异步的,那么还有更多的事情需要考虑?嗯,也许它不是异步的。什么是UIConstants.FastAssetRequestStoptions?请在显示代码时解决所有未知问题,谢谢。对不起,这里是:let options=PHImageRequestOptions.isSynchronous=false options.deliveryMode=.Opportunity options.resizeMode=.fast options.isNetworkAccessAllowed=true return options,所以它是异步的。在我看来,您可能只需要另一个可以调用的公共函数取消请求顺便说一下,您知道您重写了错误的方法吗?您应该覆盖main,而不是start。如果覆盖启动,则其任务是调用main。