2011-10-21 20 views
0

xcode 4.2のリソースにドラッグした.txtファイルにデータがあります。次に、このファイルを呼び出してそれを読んで、それを画面にユーザに表示するいくつかのメソッドを使用します。できます。私の問題は、iphone /シミュレータ上で直接同じファイル(ユーザーが何かに基づいてファイルを更新する)の最後に書き込むことです。私は正しい場所とおそらく方法を求めていないと感じています。これは私のコードファイルの最後に書く、誰かがなぜこれが途方もなく助けになるだろう動作していない知っている場合です。xcodeにドラッグしたテキストファイルはどこにありますか?

-(void)updateFile:(id)sender 

{ 

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



    //append filename to docs directory 
    NSString *myPath = [documentsDirectory stringByAppendingPathComponent:@"Mom.txt"]; 


    fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:myPath]; 

    dateCombinedString= [dateCombinedString lowercaseString]; 
    writtenString= [[NSString alloc]initWithFormat:@", %@, %@, %@",dateString,trimmedString,ForDisplay]; 


    [fileHandle seekToEndOfFile]; 
    [fileHandle writeData:[writtenString dataUsingEncoding:NSUTF8StringEncoding]]; 

     [writtenString release] 

     } 
+0

あなたがリソースとしてプロジェクトにMom.txtを入れた場合、それはあなたのアプリケーションの中にインストールされます。メインバンドルであり、アプリケーションのドキュメントディレクトリにはありません。 –

+0

メインバンドルからどのようにアクセスすればよいですか?リソースに残しておくか、アプリケーションのドキュメントディレクトリに置く方が良いでしょうか?ありがとう! – Teddy13

答えて

2

あなたはXcodeのにドラッグファイルをありがとうございアプリのリソース内にあります。

NSURL* fileUrl = [[NSBundle mainBundle] URLForResource:@"Mom" withExtension:@"txt"]; 

しかし、あなたはその後、したがって、あなたが最初のドキュメントディレクトリにそのファイルをコピーする必要があり、リソースディレクトリ内のファイルを変更するコード内でそれを変更することはできません:あなたはこのコード行でリソースへのパスを取得することができます質問。ここで

は、ファイルがドキュメントフォルダに存在しない場合は、リソースからファイルをコピーすることができる方法です。

NSFileManager* fm; 

fm = [NSFileManager defaultManager]; 
//only copy it from resources if it does not exits 
if(![fm fileExistsAtPath:myPath]){ 
    NSURL* myUrl = [NSURL fileURLWithPath:myPath];; 
    NSError* error = nil; 
    [fm copyItemAtURL:fileUrl toURL:myUrl error:&error]; 
    //handle the error appropriately 
} 
+0

意味があります、非常にmuratありがとう!あなたが気にしない場合、このコピーをドキュメントディレクトリに作成してから変更するためにはどのようなコードが必要でしょうか?それとも、私はそれを絶えず変更したり読んだりしているので、アプリのリソースに入れても構いませんか?ありがとうございました – Teddy13

+0

私は私の答えを編集し、リソースフォルダからファイルをコピーする方法を追加しました。ドキュメントフォルダ内に直接ファイルを追加する方法はありません。したがって、ファイルの最初のバージョンをリソース内に配置してから、ドキュメントフォルダにコピーする必要があります。 – murat

+0

ありがとうございました。 – Teddy13

関連する問題