如何在iOS中解压缩异步方式的zip文件?
Posted
技术标签:
【中文标题】如何在iOS中解压缩异步方式的zip文件?【英文标题】:How to unzip asynchronous way zip file in iOS? 【发布时间】:2014-12-18 15:42:12 【问题描述】:如何异步解压文件?目前我是这样解压的:
[SSZipArchive unzipFileAtPath:strZipFile toDestination:strDestPath];
但这会阻塞我的主线程,并且 UI 无响应超过 10 秒。 zip 文件超过 50MB,我在 didFinishLaunching 上的委托中开始下载(以避免长时间的启动屏幕,因为并不总是需要在开始时拥有该文件。)
【问题讨论】:
如果你在另一个线程中执行,一切都是异步的 【参考方案1】:使用 GCD 在后台线程中运行它:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
[SSZipArchive unzipFileAtPath:strZipFile toDestination:strDestPath];
);
您可能想通过调用主线程某处的方法来告诉您的应用您已完成解压缩:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
[SSZipArchive unzipFileAtPath:strZipFile toDestination:strDestPath];
dispatch_async(dispatch_get_main_queue(), ^
[someClass finishedUnzippingFile:strDestPath];
);
);
【讨论】:
以上是关于如何在iOS中解压缩异步方式的zip文件?的主要内容,如果未能解决你的问题,请参考以下文章