2009-07-12 8 views
3

私は、iPod touch/iPhoneにデータを読み込み、UDPを使ってマルチキャストソケット経由で送信するアプリケーションを設計しています。ドキュメントディレクトリにファイルとして保存する必要があります。それはiPhoneやiPod Touch上に存在しますか?私はNSFileHandleとNSFileManagerがあることを知っています。これは私が使用することを計画していて、ファイルの読み書きを担当していますが、iPod touchの「マイドキュメント」セクションがわかりません。私は言う。私はよくiPod/iPhoneのファイルディレクトリに精通していないので、どんな助けもありがとう!アプリケーションに関係するすべての開発者がファイルを格納するために使用する "一般的な"ディレクトリがありますか?iPod TouchとiPhoneのドキュメントディレクトリ

答えて

7

永続ファイルを保存するには、アプリケーションのDocumentsディレクトリを使用する必要があります。さらに最近では、コアデータアプリケーションのためのテンプレートは、このようなコードを提供し

/** 
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; 
}
7

あなたは、Appleがコアデータを使用してアプリケーションのための彼らのテンプレートに含まれるこの機能を使用してディレクトリへのパスを取得することができます
- (NSString *)applicationDocumentsDirectory { 
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
} 

NSSearchPathForDirectoriesInDomainsから返されたNSArrayが空の場合、lastObjectはnilを返します。その結果、コードはより短くクリーンです。

あなたが気をつけなければならないことの1つは、iOS 5の時点で、非ユーザ生成データをドキュメントディレクトリに置くべきではありません。あなたのアプリは拒否されるかもしれません。代わりに、そのようなログをCachesディレクトリに入れることを考えてください。このパスのパスを取得するには、上記のコード例でNSDocumentDirectoryNSCachesDirectoryに置き換える必要があります。

関連する問題