2011-11-09 4 views
0

私はユーザーのお気に入りを格納するために使用するPlistファイル(バンドルの外)を持っています。読み込まれると、Plistがテーブルにロードされることが期待どおりに機能します。plistファイルをテーブルに再ロードする方法

ただし、Plistに新しい項目を追加すると、plistファイル(バンドルの外側)が更新されます。ログに示されているように、リロードテーブルビューがトリガされます。ただし、データはPlistから実際にリロードされず、既存の(配列)値のみを使用します。更新したPlistがテーブルに表示される場合は、アプリ全体を終了してリロードしない限り

元の配列を使用するのではなく、更新されたPlistから実際にテーブルをリロードする方法を教えてください。

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

私はこのコードを使用して、Plist作業からデータを取得します。

NSMutableArray *rawFavArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath]; 

これを使用して、テーブル作業用のセル情報を作成するための配列を実行します。

return [favReloadArray objectAtIndex:indexPath.row]; 

私は(viewWillApear内)テーブルを再ロードするためにこれを使用 - 動作しない、ログをトリガーするが、PLISTをリロードしません。

[self.tableView reloadData]; 

私はplistの中のデータの変化を試してみてください - 私はこれを行うことができますが、すべての変更は、私はアプリを終了しない限り、表に表示して、再起動しません。

+1

新しい項目で新しい配列を作成し、その配列をplistファイルに保存していて、配列を新しい内容としてtableviewに提供していないように思えます。ソースコードを含めるように質問を編集してください。そうすれば、どのように完了したのかがわかります。 –

+0

reloadDataは、表示可能なセルを再ロードしてデリゲートメソッドを呼び出すようにUITableViewに通知します。配列やモデルオブジェクトはリロードされません。つまり、とにかくアプリの外側にあるplistを修正するべきではない - 特にiPhoneでは、ほとんど不可能になるだろう(jailbreakされない限り)。 –

答えて

1

あなたはreloadDataを呼び出す直前に、あなたは最初favReloadArrayを作成した方法に応じて、 [favReloadArray release]; favReloadArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
または
favReloadArray = [NSMutableArray arrayWithContentsOfFile:plistPath];
を持つ必要があります。

0

myArray = [NSArray arrayWithContentsOfFile:myFilePath];