0

私が構築しているアプリは、更新されたファイルの既知の場所を定期的にチェックする必要があります。たまたまPDFです。x時間が経過した場合、アプリはファイルの新しいコピーをアップロードする必要があります。次のコードスニペットは機能します。ファイルをダウンロードします。ただし、アプリは新しいものではなく、キャッシュされたバージョンのPDFを表示します。これは、アプリバンドルを調べて確認しました。このコードが実行された後、Documentsディレクトリに間違いなく新しいファイルがあります。しかし、バンドルのtmp / DiskImageCache-[ランダムなジブリッシュ文字列]には、古いバージョンのPDFのコピーがあります-これが私のUIWebViewによって表示されているものです。

NSFileManagerのドキュメントを検索し、もちろん嵐を巻き起こしましたが、キャッシュされたバージョンのPDFの代わりに、アプリに新しいアップロードを表示させる方法を見つけることができませんでした。

この問題であなたがレンダリングできるどんな援助にもたくさん感謝します。

   -(void) checkFile:(NSString *)url andSaveTo:(NSString __autoreleasing *)filename {

    NSFileManager *manager = [NSFileManager defaultManager];
    NSError *error = nil;      
    NSDictionary *attributes = nil;

    if ([manager fileExistsAtPath:filename]) {

       attributes = [manager attributesOfItemAtPath:filename error:nil];

        double updateInterval = [[attributes fileCreationDate] timeIntervalSinceNow];
        cacheInterval = CacheInterval;

        if (ABS(updateInterval) > CacheInterval) {
         [self downloadFile:url andSaveTo:fileName];
        }
    }
}
4

1 に答える 1

1

パラメータとしてURLに乱数を追加することで、いつでもキャッシュを阻止できます

例:address / yourfilehere.pdf?rand = 0323094230948203984そして、長いランダムパラメータに毎回ランダムに生成された新しい番号を指定します

于 2012-12-14T21:35:02.180 に答える