パスワードで保護されたzipファイルを電子メールで送信できるようにしたいので、IOS4アプリケーションで客観的なzip(v1.01e)を使用しようとしています。
アプリケーションに目的のzipソースコードファイルがありますが、このスタートガイドに従っていくつかの問題が発生しています。http://code.google.com/p/objective-zip/wiki/GettingStarted
次のコマンドを使用します
ZipFile *zipFile= [[ZipFile alloc] initWithFileName:@"yourFiles.zip" mode:ZipFileModeCreate];
ただし、これは、メソッドzipOpen2(507行目)から以下に示すコードを介してnullを返すことに常に失敗します。ここ:
if (ziinit.filestream == NULL)
return NULL;
スタックトレースに続いて、次のメソッドを通過します。
//First
- (id) initWithFileName:(NSString *)fileName mode:(ZipFileMode)mode
//Second
extern zipFile ZEXPORT zipOpen (pathname, append)
//Third
extern zipFile ZEXPORT zipOpen2 (pathname, append, globalcomment, pzlib_filefunc_def)
ただし、2番目のメソッドにこのコードがあることに気付きました。
extern zipFile ZEXPORT zipOpen (pathname, append)
const char *pathname;
int append;
{
return zipOpen2(pathname,append,NULL,NULL);
}
このメソッドから文字列パス名(GDB内)の値をクエリすると、次のようになります。
0x1b7f30は、有効なオブジェクトを指しているようには見えません。
だから私の質問:
- とは何ですか
const char *pathname
、それは何をしますか、そしてそれはパス名を台無しにしていますか?AFAIK charは、ファイル名を表すことができない単一の文字ですか? - 示されているコードは、目的のzipプロジェクトのソースコードからのものであり、私自身のものではないため、機能していると思います。それは私の誤解かもしれません。では、この問題を引き起こしている可能性のある他の理由は何ですか?
詳細については、パラメータ、ファイル名を取得し、次のようにファイル名へのポインタを作成しinitWithFileName:
て渡します。zipOpen()
_fileName = [fileName retain];