1

ファイルをドキュメントディレクトリに保存してロードしています-(id)previewController:(QLPreviewController *)previewController PreviewItemAtIndex:(NSInteger)idx with [NSURL fileURLWithPath:self.path];

返されたURLは正しい画像です。ただし、QLPreviewControllerは最後に保存された画像を表示します。この問題は、iOS6でのみ発生します。

コードは次のとおりです。

-(void)loadAndSaveFile {

NSData *data = [NSData dataWithContentsOfURL:self.mainURL];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSArray *arr=[self.urlString componentsSeparatedByString:@"."];
NSString *str=[arr lastObject];
self.pdfPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Preview.%@",str]];
[data writeToFile:self.pdfPath atomically:YES];

[self preview];

}

ここで、previewは、QLPreviewControllerを初期化するメソッドです。

そしてデータソースメソッドpreviewItemAtIndexで、私はこのようなパスを取得しています

fileURL1 = [NSURL fileURLWithPath:self.pdfPath]; NSLog(@ "%@"、fileURL1);

    if ([QLPreviewController canPreviewItem:fileURL1]) {
        NSLog(@"///////%@",fileURL1);
        return fileURL1;

    }
4

1 に答える 1

0

QLPreviewControllerを閉じるときにドキュメントディレクトリからそのファイルを削除することで解決しました

NSError *err=nil; [[NSFileManager defaultManager] removeItemAtPath: self.pdfPath エラー:&err];

iOS4.3、iOS5.1、iOS6で完全に動作するようになりました

于 2012-10-31T06:52:37.853 に答える