8

如何快速解压缩文件?在 Objective-C 中,我使用了 SSZipArchive,我很喜欢它。如下面的代码所示。我怀疑如果我决定保留 SSZipArchive,我将不得不将一个 Objective-C 文件桥接到我的 Swift 文件。是否有任何更新的第三方或更好的 Apple 文档来解压缩 Swift 中的文件?

NSString *zipPath = [self.globalFileStrucure stringByAppendingPathComponent:@"zipfile.zip"];

[data writeToFile:zipPath options:0 error:&error];

BOOL unZipped = 0;

unZipped = [SSZipArchive unzipFileAtPath:zipPath toDestination:self.globalFileStrucure];
4

5 回答 5

19

斯威夫特 2(更新):

所以它对我有用,没有错误:

  1. 在此处下载/克隆库:ssziparchive
  2. 将目录“SSZipArchive”复制到您的项目(拖放)并选择“创建组”
  3. 将库包含到您的项目 Swift-ObjC Bridge (xxxx-Bridge-Header.h)

    #import "SSZipArchive.h"

  4. 链接库“libz.tbd” - iOS 的一部分

    (项目 -> 构建阶段 -> 将二进制文件与库链接 -> +)

  5. 准备压缩/解压缩

于 2015-03-18T09:48:39.767 回答
2

如果您正在使用任何 UIKit 或 AppKit,那么您已经在使用 Swift-ObjC 桥接器。不用担心,只需使用您熟悉和喜爱的库!

let zipPath = globalFileStrucure.stringByAppendingPathComponent("zipfile.zip")
data.writeToFile(zipPath, options: nil, error: &error)

let unZipped = SSZipArchive.unzipFileAtPath(zipPath, toDestination: globalFileStrucure)
于 2014-10-30T16:49:19.670 回答
1

我发现 WPZipArchive 使用 Cocoapods 更易于使用和安装。有兴趣的朋友可以阅读以下指南:

1) 从 Mac Application/Utilities 文件夹或 Launchpad 打开 Terminal.app

2) 进入sudo gem update --system您的终端以确保您的 Ruby 是最新的

3)进入sudo gem install cocoapods安装cocoapods(这个过程可能需要几分钟,等待它显示完成)

4)进入pod setup设置cocoapods(从这里开始,你不需要使用sudo命令,只使用pod

5) 启动 Xcode 并创建一个新项目(如果您没有创建现有项目)。如果您创建了 Xcode 项目,请跳过此步骤。

6) 退出 Xcode 程序。是的,关闭你的项目并退出 Xcode 程序

7) 回到终端并输入cd Path/To/Folder/Containing/YourProject用你自己的目录路径替换这个 Path/To/Folder/Containing/YourProject

8) 输入pod init

9) Enteropen -a Xcode Podfile使用 Xcode 程序打开 podfile。默认 Podfile 如下所示:

platform :osx, '10.10'
use_frameworks!

target 'myprojectname' do
pod 'WPZipArchive', '0.0.1'
end

platform :osx, '10.10'是指定最小部署目标,您可以更改为您喜欢的任何内容。

10) 保存并关闭 Podfile(也关闭 Xcode)

11)回到终端并输入pod install这是安装WPZipArchive,这将需要几分钟。

12)您已完成安装 WPZipArchive。

启动 Xcode 项目:

重要提示:从现在开始,您必须使用.xcworkspace 而不是 .xcodeproj启动您的 Xcode 项目

在 ViewController.swift 或任何要使用 zip 或 unzip 方法的 .swift 文件上,只需添加 import WPZipArchive ,如下所示:

import Cocoa
import WPZipArchive

要压缩文件,请调用如下方法:

WPZipArchive.createZipFileAtPath(zipPath, withContentsOfDirectory: sampleDataPath)

要解压缩文件,请调用如下方法:

WPZipArchive.unzipFileAtPath(zipPath, toDestination: unzipPath)

这就是全部,它工作且易于实施。

享受拉链和解压

于 2016-02-05T21:03:51.787 回答
0

它适用于跟随 Peter Kreinz。

注意step2如下:

将目录“SSZipArchive”复制到您的项目时,请选择“创建组”(拖放)

于 2015-12-14T08:20:26.870 回答
0

@screenworker (Unome) 询问了一连串错误,这些错误都参考了 libz 框架。我遇到了类似的事情。链接步骤产生了有关“符号”的错误,例如“_crc32”。所有这些符号都可以在 libz.tbd 存根中找到。

这种情况下的问题是我错误地将 libz.tbd 引用添加到了测试目标,而不是为项目本身命名的目标。这可以通过转到构建阶段显示来检查:

  • 在项目导航器(左侧面板)中单击您的项目名称
  • 在编辑器中,单击“构建阶段”选项卡。
  • 在 Build Phases 显示中,在 Project Navigator 旁边的窄列中查找标题为 Targets 的列表
  • 单击与您的项目相同的目标(例如 myProject 而不是 myProjectTest 或 myProjectUITest)
  • 如果单击“Link Binary With Libraries”旁边的箭头,您应该会看到库列表 - 其中应该包含 libz。
于 2016-02-16T19:46:21.463 回答