2016-03-25 19 views
0

こんにちは私のコードにBluetoothデバイスにファイルを読み込むアプリがありますが、そのファイルを新しいバージョンのアプリで更新すると更新されないようです私はちょうどそれを再インストールする場合。私は実際にアプリを削除して、もう一度インストールする必要があります。誰でも知っている理由は?いくつかのキャッシュが保存されていますか?ファイルマネージャが古いアプリから消去されない

NSString *fileInDocuments = [documentsDirectory stringByAppendingPathComponent:@"samplefile_pack.bin"]; 
    NSLog(@"File: %@", fileInDocuments); 
    if ([fileManager fileExistsAtPath:fileInDocuments ] == NO) { 
    NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"samplefile_pack" ofType:@"bin"]; 
    [fileManager copyItemAtPath:resourcePath toPath:fileInDocuments error:&error]; 
} 

答えて

1

あなたのアプリのv1があなたの質問に投稿されたアプリのv2と同じコードを持っているとします。これが真であると仮定すると、あなたが見る行動は完璧な意味を持ちます。

ユーザーがアプリのv1を実行しています。ファイルはDocumentsフォルダにはないので、アプリケーションバンドルからコピーされます。今、あなたのアプリを実行するたびに、ファイルが存在し、そのドキュメントのコピーが使用されます。

ユーザーはアプリのv2にアップデートします。同じチェックが行われます。ファイルは既にドキュメントに存在するため、何もコピーされません。

このファイルの更新コピーをインストールするには、アプリのv2を初めて実行する必要があるということを意味しているので、ドキュメントフォルダにv1またはv2のファイルがあるかどうかを検出する必要があります。

これを解決する方法はいくつかあります。 1つの方法は、ファイルの名前をsamplefile_pack2.binのように変更することです。次に、新しいファイル名をチェックすることができます。また、古いものをチェックし、意味がある場合は削除することもできます。

+0

私はファイルをpack2に変更しますが、それでも最初のファイルを取得します。だから私は古いものが削除されるかどうかを確認する必要はありません – user3281743

+0

それはまだそれが最初のものを取得することを意味しますか? – rmaddy

+0

ありがとうございました – user3281743

関連する問題