3

UDP を使用してマルチキャスト ソケット経由で送信されたデータを iPod touch/iPhone に読み取るアプリケーションを設計しており、ドキュメント ディレクトリにファイルとして保存する必要があります。それは iPhone または iPod Touch に存在しますか? ファイルの読み取りと書き込みを処理するために使用する予定の NSFileHandle と NSFileManager があることは知っていますが、iPod touch の「マイ ドキュメント」セクションがどこにあるのかわかりません。と言っています。iPod/iPhone のファイル ディレクトリについてはまだよく知らないので、助けていただければ幸いです。アプリケーションに関与している場合、すべての開発者がファイルを保存するために使用する「一般的な」ディレクトリはありますか?

4

2 に答える 2

7

最近では、Core Data アプリケーションのテンプレートで次のようなコードが提供されています。

- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

NSSearchPathForDirectoriesInDomains から返された NSArray が空の場合、lastObject は nil を返すため、コードはより短く、より簡潔になります。

注意すべき点が 1 つあります。iOS 5 の時点では、非ユーザー生成データを Documents ディレクトリに配置しないでください。アプリが拒否される可能性があります。代わりに、そのようなログをCachesディレクトリに配置することを検討する必要があります。このパスを取得するには、上記のコード例でNSDocumentDirectoryに置き換える必要があります。NSCachesDirectory

于 2010-10-04T13:28:52.973 に答える
7

アプリケーションの Documents ディレクトリを使用して永続的なファイルを保存する必要があります。この関数を使用してディレクトリへのパスを取得できます。これは、Apple が Core Data を使用するアプリケーションのテンプレートに含めています。

/**
 Returns the path to the application's documents directory.
 */
- (NSString *)applicationDocumentsDirectory {

    NSArray *paths = 
      NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
    return basePath;
}
于 2009-07-12T03:04:00.210 に答える