12

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)アプリでアプリケーションドキュメントディレクトリを取得するために使用していますが、返される配列にはオブジェクトが1つしか含まれておらず、書き込み不可能で正しくないディレクトリです。

/ Users / me / Library / Application Support / iPhone Simulator / Documents

問題がプロビジョニングに関連していることを示すこの質問を見つけましたが、答えはそれ以上のものではありません。ですから、重複した質問をしていると思いますが、その質問に対する答えが不十分なので、これで実際の答えを得たいと思っています。

4

4 に答える 4

8

うーん...ディレクトリが返される1つの理由は、アプリに期待するものとは異なる可能性があり、Xcodeターゲットタイプに関連している可能性があります. これはたまたまテストの対象にならないのでしょうか。この場合、実際にはアプリケーションではないため、正しい答えはアプリケーション GUID を含まない答えである可能性があります。このGoogle グループ ディスカッションは、これが事実である場合、ディレクトリを作成するだけでよいことを意味します。

念のため、ターミナル ウィンドウからディレクトリ /Users/me/Library/Application Support/iPhone Simulator/Documents を作成したところ、実行されているように見えます。テストエラーはまだありますが、それは本当かもしれません。

ドキュメント ディレクトリがない場合は、テスト アプリを変更してドキュメント ディレクトリを作成することをお勧めします。

  if(![[NSFileManager defaultManager] createDirectoryAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) withIntermediateDirectories:YES attributes:nil error:NULL])
        NSLog(@"Error: Create folder failed %@", NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES));
于 2011-07-06T12:38:47.687 に答える
3

これは私のために働く:

[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory
                                        inDomains:NSUserDomainMask] lastObject];
于 2011-06-29T05:37:13.087 に答える
1

これを試すことができます:

 /**
 Returns the path to the application's Documents directory.
 */
- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

lastObject メッセージだけが欠落していると思います。

于 2011-07-05T01:49:21.257 に答える