Voglio scaricare un file zip contiene una cartella con un sacco di file audio che usano per la mia pronuncia nel dizionario. Io uso ASIHTTPRequest per scaricarlo e il mio problema è "Non so come decomprimere quel file". Ho provato a utilizzare SSZipArchive
e ZipArchive
entrambi sono basati su minizip
ma ho ricevuto un errore durante la compilazione del codice Undefined symbols for architecture i386: "_OBJC_CLASS_$_ZipArchive", referenced from: objc-class-ref in AppDelegate.o
. Quindi potresti darmi dei consigliscaricare e decomprimere il file in iOS
risposta
Ho usato ZipArchive con successo in passato. È abbastanza leggero e semplice da utilizzare, supporta la protezione tramite password, più file all'interno di un ZIP e comprime la decompressione &.
L'uso di base è:
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"ZipFileName" ofType:@"zip"];
ZipArchive *zipArchive = [[ZipArchive alloc] init];
[zipArchive UnzipOpenFile:filepath Password:@"xxxxxx"];
[zipArchive UnzipFileTo:{pathToDirectory} overWrite:YES];
[zipArchive UnzipCloseFile];
[zipArchive release];
più esempi di questo pacchetto here
Ho anche provato SSZipArchive in alcuni progetti. Sotto la riga decomprimere il file zip.
[SSZipArchive unzipFileAtPath:path toDestination:destination];
Quest'ultimo SSZipArchive one-liner è molto più semplice in quanto gestisce anche la scrittura file estratti. Piuttosto pulito. – Hlung
ottima risposta! – Vivo
Questa è stata la soluzione più semplice e leggera che ho valutato da circa 3 migliori raccomandazioni. ZipArchive funziona bene – jcpennypincher
Su iOS6 un file ZIP sembra essere gestito come una cartella. Ho avuto successo semplicemente facendo quanto segue:
[[NSFileManager defaultManager] copyItemAtPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"ZIP_FILE.zip/Contents/Test.m4a"].path
toPath:[NSURL URLForCachesDirectoryWithAppendedPath:@"Test.m4a"].path
error:nil];
Ci potrebbe essere una possibilità che si può anche fare un elenco di directory per decomprimere i file con contenuto sconosciuto. Non so però di file ZIP protetti da password.
Per iniziare, in iOS 7, Apple ha introdotto la possibilità di aprire/decomprimere i file in modo nativo. Hai anche l'opzione in modo da inviare i file zip tramite Mail, Messaggi, Airdrop e "Apri in". La chiave è: Il file zip deve essere supportato da iOS Alcuni lo sono, altri no. Il primo passo: scopri se il tuo file è supportato. Fai questo con un semplice controllo del file appena salvato. Prova ad aprirlo. Se è bloccato "In attesa ..." è probabilmente non supportato. Prova una libreria diversa o usa una soluzione alternativa, se questo è il caso.
Ora, facendo questo programmaticamente Attualmente è necessario l'uso di una libreria di terze parti per salvare i file zip ed estrarli. Questo non è l'ideale, dal momento che molte persone/aziende evitano di usarli. Detto questo, la risposta contrassegnata corretta, ZipArchive è un ottimo strumento di terze parti, soprattutto perché ora supporta Swift. Consiglierei di usarlo fino a quando Apple non introdurrà una libreria nativa.
il tuo errore significa che stai usando una libreria statica solo per iPhone con il simulatore ... –
@ H2CO3: come posso risolverlo ... –
Non puoi usarlo su thesimulator, solo su un dispositivo reale. –