Décompressez les fichiers dans swift
Comment décompresser un fichier à swift? En Objective-C, j'ai utilisé SSZipArchive et j'ai adoré. Comme on le voit dans le code ci-dessous. Je suppose que si je décide de garder SSZipArchive, Je vais le pont de l'Objective-C fichier à mon Swift fichier. Est-il une mise à jour des tiers, ou mieux encore de la Pomme-de la Documentation pour décompresser un fichier à 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];
pod 'SSZipArchive'
est complètement compatible avec Swift.OriginalL'auteur imnilly | 2014-10-30
Vous devez vous connecter pour publier un commentaire.
Swift 2 (Mise À Jour):
De sorte qu'il fonctionne pour moi sans Erreurs:
inclure la bibliothèque de votre Projet Swift-ObjC Pont (xxxx-Pont-d'en-Tête.h)
#import "SSZipArchive.h"
lien de la Bibliothèque "libz.tbd" - fait Partie de iOS
(Projet -> Phases de construction -> Lien Binaire Avec les Bibliothèques -> +)
Prêt à zip/unzip
Pour Xcode 7 et Swift 2 & applications Mac, importer les 2 libs, libz.tbd et dylib1.o
OriginalL'auteur Peter Kreinz
Si vous utilisez tout de UIKit ou AppKit, vous travaillez déjà avec un Swift-ObjC pont. Ne vous inquiétez pas, il suffit d'utiliser la bibliothèque que vous connaissez et aimez!
OriginalL'auteur Nate Cook
J'ai trouvé WPZipArchive est plus facile à utiliser et à installer, à l'aide de Cocoapods. Toute personne intéressée peut lire le guide ci-dessous:
1) Ouvrir Un Terminal.application à partir de votre Application Mac/dossier Utilitaires ou de votre Launchpad
2) Entrez
sudo gem update --system
dans votre Terminal pour vous assurer que votre Ruby est à jour3) Entrez
sudo gem install cocoapods
pour installer cocoapods (Ce processus risque de prendre quelques minutes, il suffit d'attendre ce spectacle Terminé)4) Entrez
pod setup
pour l'installation de l'cocoapods (à partir d'ici-là, vous n'avez pas besoin d'utilisersudo
de commande, utilisez uniquementpod
)5) Lancez Xcode et créez un nouveau projet (Si vous n'avez pas de projet existant créé). Ignorez cette étape si vous aviez un projet Xcode créé.
6) QUITTEZ Xcode programme. Oui, fermez votre projet et de quitter l'Xcode programme
7) Retour au Terminal et entrez
cd Path/To/Folder/Containing/YourProject
remplacer ce Chemin/Vers/le /Dossier/Contenant/Votreprojet avec votre propre chemin d'accès au répertoire8) Entrez
pod init
9) Entrez
open -a Xcode Podfile
pour ouvrir la podfile à l'aide de Xcode programme. La valeur par défaut Podfile ressemble à ceci:platform :osx, '10.10'
est de préciser le nombre minimal de cible de déploiement, vous pouvez changer à tout ce que vous avez préféré.10) Enregistrez et Fermez Podfile (Près de Xcode trop)
11) Retour au Terminal et entrez
pod install
c'est pour installer le WPZipArchive, cela va prendre quelques minutes.12) Vous avez terminé l'installation de WPZipArchive.
Lancez Xcode Projet:
IMPORTANT: à Partir de maintenant, vous devez lancer votre projet Xcode à l'aide de la .xcworkspace PAS .xcodeproj
Sur le ViewController.swift ou tout .swift fichier que vous souhaitez utiliser compresser ou de décompresser méthode, il suffit d'ajouter à l'importation WPZipArchive comme ci-dessous:
Pour compresser un fichier, appel de méthode comme ceci:
Pour Décompresser un fichier, appel de méthode comme ceci:
C'est tout et il et facile à mettre en œuvre.
Profiter de compression et décompression
OriginalL'auteur David Evony
Il travaille avec Pierre Kreinz.
Attention sur l'étape 2, ci-dessous:
Veuillez cocher la case " Créer des groupes lors de la copie du Répertoire "SSZipArchive" à votre Projet (Drag&Drop)
OriginalL'auteur 米米米
@screenworker (Unome) posées sur une série d'erreurs qui font tous référence à la libz cadre. Je suis tombé sur quelque chose de similaire. L'étape de liaison généré des erreurs concernant les "symboles" comme "_crc32". Tous ces symboles peut être trouvé dans la libz.tbd stub.
La question dans cette affaire est que j'ai eu tort, a ajouté le libz.tbd référence à la cible de Test, pas la Cible nommée pour le projet lui-même. Ceci peut être vérifié en allant dans les Phases de construction d'affichage:
OriginalL'auteur user2121934