The standard zlib library comes with minizip as sample code in the contrib/minizip directory of the source distribution. The zlib license is extremely permissive. LDView 4.2 will be using this on the Mac instead of a system call to unzip. Take a look at the section inside #ifdef HAVE_MINIZIP of the following C++ class from LDView:
http://ldview.cvs.sourceforge.net/viewvc...iew=markup
The above unzips complete.zip onto the file system, but to do that it scans the file list from the zip file and stores the results in a std::map object. If you look at scan() and extractFile(), you should have relatively clear sample code that you can convert to Objective C for loading files from a zip directly into memory. (My code uses a fixed size buffer, which is incrementally filled with the file contents and immediately written to disk, but it's trivial to modify it to read an entire file into an NSMutableArray or BYTE *.)
http://ldview.cvs.sourceforge.net/viewvc...iew=markup
The above unzips complete.zip onto the file system, but to do that it scans the file list from the zip file and stores the results in a std::map object. If you look at scan() and extractFile(), you should have relatively clear sample code that you can convert to Objective C for loading files from a zip directly into memory. (My code uses a fixed size buffer, which is incrementally filled with the file contents and immediately written to disk, but it's trivial to modify it to read an entire file into an NSMutableArray or BYTE *.)