2011-11-09 67 views
0

我有一個Plist文件(外部包),用於存儲用戶的最愛。一旦加載,它就像預期的那樣工作,Plist被加載到表格中。如何將plist文件重新加載到表中

但是,當您將新項目添加到Plist時:plist文件(在包之外)更新。重新加載tableview被觸發,如日誌所示。但是,數據實際上並未從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上,這幾乎不可能(除非越獄)。 –

回答

1

打電話reloadData就在你應該有這取決於哪種方式,你首先要創建favReloadArray [favReloadArray release]; favReloadArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];

favReloadArray = [NSMutableArray arrayWithContentsOfFile:plistPath];

0

myArray = [NSArray arrayWithContentsOfFile:myFilePath];