2015-05-29 97 views
3

我有一些代码会将一些PDFDocument对象写入用户选择的目标。这工作正常。停止当前正在运行的writeToFile:

也许这些文件中的一些(由用户选择)可能相当大(可能是几百兆字节),现在我想知道是否有可能取消当前的呼叫(例如,用户改变了主意并希望停下来)。

回答

1

我怀疑你可以用这种方法来做,因为它不提供取消功能。

我建议您使用dataRepresentation方法PDFDocument先获取PDF数据。然后你可以使用NSDatasubdataWithRange:来分割数据。然后您可以使用NSFileHandlefileHandleForWritingToURL:error:,writeData:closeFile方法将数据连续写出到文件中。

从非主线程以for的形式写出这样的块 - 可以说任何时候都可以取消它。

+0

通常这将是一种方法来做到这一点。但不幸的是,我正在使用'options'字典来提供一个Quartz过滤器,这会导致PDF文件被压缩。 – Alex

相关问题