2011-07-21 11 views
1

iPhoneAppでシンボリックリンクを使用しています。iPhoneアプリのアップデート。 "createSymbolicLinkAtPath"がリリースされましたか?

NSString* js_path = [[NSBundle mainBundle] pathForResource:@"js" ofType:nil]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
if (js_path != nil) { 
    NSFileManager *fm = [NSFileManager defaultManager]; 
    NSString* move_js_path = [NSString stringWithFormat:@"%@/js", [paths objectAtIndex:0]]; 
    NSError *error; 
    if ([fm createSymbolicLinkAtPath:move_js_path withDestinationPath:js_path error:&error]) { 
    } else {} 
} 

アプリケーションプログラムを更新しました。後でファイルを読むことが不可能になります。

ただし、アプリケーションプログラムを一度削除した後にファイルを再インストールすると、ファイルを読み込むことができました。

このコードに問題はありますか?

答えて

0

これが不思議だとすれば、アプリケーションはディレクトリが更新されるたびにディレクトリを移動するため、解決策は/ var/mobile/Applications/[毎回更新する一意のID]/app.appのドキュメントディレクトリは、/ var/mobile/Applications/[毎回更新する一意のID]/Documentsにあります。ドキュメントからバンドルへのシンボリックリンクは、../[bundlepath lastPathComponent]/Documents

ofcこれは、相対パスをハードコードするのではなく、実行時に取得するディレクトリから相対パスを作成して、これらの相対パスが将来変更されるようにすることをお勧めします。

関連する問題