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

时间:2015-02-17 15:06:40

标签: 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(代码= 1,子代码= 0x1001bc998)

我也看到了:EXC_BREAKPOINT(代码= 1,子代码= 0x100100998)

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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