プロが教える店舗&オフィスのセキュリティ対策術

iPhoneアプリ開発につきまして、質問させて頂きます。
csvファイルへのデータの出力を試みているのですが上手くできません。
プログラムとログ内容を以下に記述しました。

「abc」と予め書いてある「hoge.csv」ファイルに「stringaaaaaaaaaaa」を書き込み保存しておきたいのですが、上手くいきません。
ログ内容を見る限り、「abc」が読み込めているので、パスは合っていると思っています。また、writeToFileをしてから読み込むと「stringaaaaaaaaaaa」が読み込めるため、どこかには書き込めているような気がします。
しかし、毎回同じ処理をしても、最初に読み込まれるのは「abc」です。「hoge.csv」をテキストエディタで読み込んでも表示されるのは「abc」です。
また、iPhoneシミュレーターで実行した結果は以下のログ内容なのですが、iPhone実機で動作させると、writeToFileを行ったあとでも「abc」が出力されます。


何か原因を思い当たる方、教えて頂ければ幸いです。

- (void)viewDidLoad {
[super viewDidLoad];
[self setTitle:@"Stress Application"];
printf("viewdidload");
NSString *text = [[NSString alloc] initWithFormat:@"stringaaaaaaaaaaaaaaa"];
NSString *_path = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"csv"];
//atomicallyは補助ファイルを使ってファイルの破損を防止するかどうか
NSLog(@"%@",[NSString stringWithContentsOfFile:_path encoding:NSUTF8StringEncoding error:nil]);

[text writeToFile:_path atomically:YES encoding:NSUTF8StringEncoding error:nil];

NSLog(@"%@",[NSString stringWithContentsOfFile:_path encoding:NSUTF8StringEncoding error:nil]);

NSLog(@"%@",text);
}

<ログ内容>
2012-10-31 12:35:10.187 ThinkGearTouch[17182:1a903] FinishLaunching
viewdidload2012-10-31 12:35:10.204 ThinkGearTouch[17182:1a903] abc
2012-10-31 12:35:10.212 ThinkGearTouch[17182:1a903] stringaaaaaaaaaaaaaaa
2012-10-31 12:35:10.212 ThinkGearTouch[17182:1a903] stringaaaaaaaaaaaaaaa

A 回答 (1件)

File I/O operation is asynchronous.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!