4

古いパーサーは動作するために a に依存していFILE *ます。ただし、Dropbox Sync API for iOS はファイル ハンドルとしてNSFileHandle *ではなく を返します。FILE *

だから私は使用しようとしfileDescriptorますNSFileHandle

- (NSFileHandle )readHandle:(DBError * )エラー

ファイルの読み取り専用ファイル ハンドルを返します。ファイルがキャッシュされていない場合、メソッドはファイルがダウンロードされるまでブロックされます。戻り値

ファイルを読み取ることができる場合はファイル ハンドル、エラーが発生した場合は nil。

として渡されますFILE *

- (void)loadDBFile:(DBFile *)dbFile
{
    DBError *dbError;
    NSFileHandle *fileHandle = [dbFile readHandle:&dbError];
    if (fileHandle) {
         FILE *file = fileHandle.fileDescriptor;
         fseek(file, 0, SEEK_END); // EXE_BAD_ACCESS here!
         // ...
    }
}

ただし、EXE_BAD_ACCESSアットザfseekラインがあります。

4

1 に答える 1

6

fileDescriptorオブジェクトではなく、単純な整数である基になるファイル記述子を返しFILEます(ファイル記述子をラップしますが、同じものではありません)。ファイル記述子からオブジェクトfdopen()を取得するために使用します。FILE

FILE *file = fdopen([filehandle fileDescriptor], "r"); // Create a read-only FILE object
于 2013-07-26T08:39:05.623 に答える