2011-03-29 49 views
0

我的ViewController與TableView中內嵌的,當這個ViwController啓動我火NSURLConnection的搶10個從服務器查詢第一個結果,這個結果包括簡單的圖像URL和文本。我將所有內容都存儲在mutabelArray中,然後加載圖像,然後將所有結果顯示在我的tableView中並添加「加載10多個單元格」單元格。所需的步驟中的tableView添加一行

那麼問題是,當我嘗試再加載10個錯誤時,「更新之後現有節中包含的行數(12)必須等於更新前該節中包含的行數」出現

[theTableView insertRowsAtIndexPaths:indexes withRowAnimation:UITableViewRowAnimationRight]; 

我讀,我必須首先從數據源中添加其他前去除細胞,但如果我從我的數組中刪除第10個細胞,我必須去,當用戶想要從服務器獲取他們回來到scrol到以前的結果......它真的很重,有點stupide -_-'...我敢肯定有一種方法可以簡單地新行添加到表視圖不會丟失以前的數據。

請,如果有人知道一個很好的和簡單的方式或有示例代碼,這將真正幫助,我是卡在它由於圖4時間:/ THX

回答

0

嗯,我曾經一個平等的問題和解決它如下:

1)使用的NSMutableArray或的NSMutableDictionary作爲數據源爲您的tableView代替的NSArray或NSDictionary的

// old 
// NSArray *dataArray = [[NSArray alloc] initWithObjects:@"Object1",...,nil]; 

// new 
NSMutableArray *dataArray = [[NSMutableArray alloc] initWithObjects:@"Object1",...,nil]; 

2)如果你趕上了10分新的結果只是將它們添加到dataArray中

// Possibility 1: 
for (Result *r in resultSet) 
{ 
    [dataArray addObject:r] 
} 

// Possibility 2: 
[dataArray addObjectsFromArray:resultSet]; 

3)現在刷新你的表:

NSMutableIndexSet *indexes = [NSMutableIndexSet indexSet]; 
[indexes addIndex:0]; 
[indexes addIndex:1]; 
[self.myTable reloadSections:indexes withRowAnimation:UITableViewRowAnimationRight]; 
+0

以及這種方法的岩石:)但我不知道,如果是趕上這一切的圖片在此NSMutableArray的一件好事,試想有100縮略圖在這個NsMutableArray中的圖片,它會成爲一個問題或導致內存警告? – john 2011-03-29 11:06:32

+0

親愛的約翰,數組是共同的行爲來處理UITableViews和他們的數據源,因爲你不必有初始化所有的時間臨時對象。實際上NSArray不是內存泄漏的問題,而是你的對象和存儲在內存中的em的數量。最多可存儲100個條目,甚至5000個條目,而不在陣列中的一個問題;) – Lepidopteron 2011-03-29 11:22:03

+0

謝謝你的男人,他能很好:) :) :) – john 2011-03-29 12:10:58

相關問題