0

Xcode プロジェクトのリソース フォルダーに plist がありますが、物理ドライブではプロジェクトの最上位フォルダーにあります。この同じファイルから読み書きしたい。NSBundle を使用すると、正しく読み取られ、問題は発生しません。このコードを使用してファイル パスを読み取ります。

NSString *thePath = [[NSBundle mainBundle]  pathForResource:@"MyFile" ofType:@"plist"];

しかし、NSBundleは書き戻しを許可していないと思うので、ファイルを書き戻そうとしたときに機能しませんでした。次のコードを使用すると、アプリケーションパスを使用してファイルが作成/更新されます

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDirectory, YES);
NSString * docsDirectory = [pathArray objectAtIndex:0];
NSString *filePath = [docsDirectory stringByAppendingPathComponent:@"MyFile.plist"];

しかし今のところ、内部ファイルに書き込む必要があります。それにアクセスするための解決策はありますか?また、作業ディレクトリからプロジェクト ディレクトリへのパスを指定しようとしました。それも機能しません。

4

1 に答える 1

1

それNSBundleは書き込みをサポートしていないのではなく、iOS自体です。iOSは、アプリに独自のバンドルへの書き込みを許可しません。

于 2011-02-18T20:51:27.190 に答える