【问题标题】:Calling ZipZap's updateEntries method causes a crash in Swift调用 ZipZap 的 updateEntries 方法会导致 Swift 崩溃
【发布时间】:2017-07-20 21:41:03
【问题描述】:

我一直在尝试使用 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 方法,代码不会崩溃。所以我的假设是崩溃发生在这个方法内部。

【问题讨论】:

    标签: ios swift archiving zipzap


    【解决方案1】:

    最后是我没有阅读 GitHub 上的示例中所写的规范。

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

    非常感谢 pixelglow 的帮助和伟大的图书馆!

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 2018-03-25
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      相关资源
      最近更新 更多