2016-04-02 26 views
1

NSDataフォーマットとして.png、.txt、.jpg、mp3などの拡張子を持つさまざまな書式のドキュメントを取得しています。これらをローカルに保存して表示する必要があります。これを試しましたNSDataをローカルに保存する方法

NSData* conData = [convStr dataUsingEncoding:NSUTF8StringEncoding]; 
NSLog(@"the converted string to nsdata is :%@",conData); 

[conData writeToFile:@"Filename.txt" atomically:YES]; 

残念ながら、これはうまくいきません。

+0

の可能性のある二重に正しいパスを渡す必要があります(http://stackoverflow.com/questions/5323427/how-do-i-download-and-save-a-local-on-ios-using-objective-c) –

+0

ファイルのドキュメント、ライブラリ、キャッシュを保存するディレクトリを指定します。あなたはその特定のコードがありません。 –

+0

@ arun Guptaはコードを教えてくれますか? – Arun

答えて

1

注 - NSDataをファイルに書き込むことは、メインスレッドの使用ディスパッチをブロックするIO操作であり、ファイル名だけでなく書き込み用のファイルパスも提供します。

は、これはあなたがあなたのコードが機能しない理由全体ではなく、ファイル・パスは、thatsの名前(ファイル名.txt)のファイルのみ与えている私

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 
    // Generate the file path 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Filename.txt"]; 

    // Save it into file system 
    [data writeToFile:dataPath atomically:YES]; 
}); 
+0

NSString * dataPath = [documentsDirectory stringByAppendingPathComponent:@ "Filename.txt"];私がこれを使用すると、拡張子.txt、または.jpg、.pdf、.png.mp3などの他のすべての形式でファイルを保存することができます – Arun

+0

@LeoDabus彼の元のコードは** objective-c **です。 – swiftBoy

+1

@Arunはい、どんなタイプのファイルでも保存できます。最良の方法は、共通のメソッドを作成し、それらをNSDataとfileNameとして渡すことです。 fileNameを使用すると、拡張を取得して特定のファイルタイプの実装を変更することもできます。ファイル名を使用すると、ファイルを目的の拡張子で保存します。 –

0

のファイルを書き込みます。

以下のコード行をチェックしてください。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"Filename.txt"]; 
[urlData writeToFile:filePath atomically:YES]; 
0

あなたは[どのように私は客観的Cを使用してiOSの上でローカルにファイルをダウンロードし、保存しますか?] writeToFile方法

NSString *docsDir; 
NSArray *dirPaths; 

dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
docsDir = [dirPaths objectAtIndex:0]; 
NSString *targetPatch = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:@"Filename.text"]]; 
[data writeToFile:targetPatch atomically:YES]; 
関連する問題