3
我有一些代碼會將一些PDFDocument
對象寫入用戶選擇的目標。這工作正常。停止當前正在運行的writeToFile:
也許這些文件中的一些(由用戶選擇)可能相當大(可能是幾百兆字節),現在我想知道是否有可能取消當前的呼叫(例如,用戶改變了主意並希望停下來)。
我有一些代碼會將一些PDFDocument
對象寫入用戶選擇的目標。這工作正常。停止當前正在運行的writeToFile:
也許這些文件中的一些(由用戶選擇)可能相當大(可能是幾百兆字節),現在我想知道是否有可能取消當前的呼叫(例如,用戶改變了主意並希望停下來)。
我懷疑你可以用這種方法來做,因爲它不提供取消功能。
我建議您使用dataRepresentation
方法PDFDocument
先獲取PDF數據。然後你可以使用NSData
的subdataWithRange:
來分割數據。然後您可以使用NSFileHandle
的fileHandleForWritingToURL:error:
,writeData:
和closeFile
方法將數據連續寫出到文件中。
從非主線程以for
的形式寫出這樣的塊 - 可以說任何時候都可以取消它。
通常這將是一種方法來做到這一點。但不幸的是,我正在使用'options'字典來提供一個Quartz過濾器,這會導致PDF文件被壓縮。 – Alex