2015-05-29 101 views
3

我有一些代碼會將一些PDFDocument對象寫入用戶選擇的目標。這工作正常。停止當前正在運行的writeToFile:

也許這些文件中的一些(由用戶選擇)可能相當大(可能是幾百兆字節),現在我想知道是否有可能取消當前的呼叫(例如,用戶改變了主意並希望停下來)。

回答

1

我懷疑你可以用這種方法來做,因爲它不提供取消功能。

我建議您使用dataRepresentation方法PDFDocument先獲取PDF數據。然後你可以使用NSDatasubdataWithRange:來分割數據。然後您可以使用NSFileHandlefileHandleForWritingToURL:error:,writeData:closeFile方法將數據連續寫出到文件中。

從非主線程以for的形式寫出這樣的塊 - 可以說任何時候都可以取消它。

+0

通常這將是一種方法來做到這一點。但不幸的是,我正在使用'options'字典來提供一個Quartz過濾器,這會導致PDF文件被壓縮。 – Alex

相關問題