ios - 调用 ZipZap 的 updateEntries 方法会导致 Swift 崩溃

标签 ios swift archiving zipzap

我一直在尝试使用 ZipZap 库 ( https://github.com/pixelglow/zipzap ) 创建存档,更具体地说是 8.0 版本。该库在 Swift 代码中使用。

我在打电话时读过:

newArchive.updateEntries(archiveItems, error: error)

要求“archiveItems”是 NSMutableArray 并且它是这样定义的。在这一点上,我尝试创建一个仅包含一个目录的存档,因此数组如下所示:

var archiveItems = NSMutableArray()
archiveItems.addObject(ZZArchiveEntry(directoryName: "\(archiveName)/"))

“newArchive”是通过以下方式创建的:

var newArchive = ZZArchive(URL: NSURL(fileURLWithPath: archivePath), error: error)

我看到的错误是:EXC_BREAKPOINT(code=1, subcode=0x1001bc998)

我还看到:EXC_BREAKPOINT(code=1, subcode=0x100100998)

如果我不调用 updateEntries 方法,代码不会崩溃。所以我的假设是崩溃发生在这个方法内部。

最佳答案

最后是我没有阅读规范,因为它写在 GitHub 上的示例中。

在 Glen Low (pixelglow) 的帮助下,问题是我实际上正在尝试创建一个新文件,但没有发送创建文件的选项以防它不存在。

非常感谢 pixelglow 的帮助和伟大的库!

当您需要创建文件时调用 init 的正确方法是:

var newArchive = ZZArchive(URL: NSURL(fileURLWithPath: archivePath), options: [ZZOpenOptionsCreateIfMissingKey: true], error: &archiveError)

关于ios - 调用 ZipZap 的 updateEntries 方法会导致 Swift 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28564499/

相关文章:

Swift - 在语音上下文数组中添加短语时崩溃

ios - 在 Swift 中,如何在 TableView 的 TableViewCell 中的 UIImageView 上添加角标(Badge)?

xml - 在 Java 中管理 XAdES 签名的库

php - 每周使用 PHP 归档 MySQL 数据

mysql - 移动过期元素?

iOS 属性声明说明

ios - 如何在没有 SDK 的情况下在 Swift 3 中在 Facebook 和 Twitter 应用程序上共享

ios - Swift:添加项目时更改 UICollectionView 中单元格布局的宽度

ios - UiSearchBar 用于 map ,例如使用 Swift 进行地址搜索

ios - 当用户点击带有 iOS 13 Swift 5 的推送通知时,在特定 View 中打开应用程序