2014-09-25 34 views
0

我有一個UITableview,並且自定義UITableviewCell有2個文本字段。 我有一個按鈕,將新的單元格添加到此表。起初,我有3個細胞,然後我加我加,當我加入第六(第6),細胞崩潰說細胞是空的,當我遍歷這樣的:UITableviewcells在第三次添加後變爲空

NSMutableArray *cells = [[NSMutableArray alloc] init]; 
for (NSInteger j = 0; j < [shtoFushaTableView numberOfSections]; ++j) 
{ 
    for (NSInteger i = 0; i < [shtoFushaTableView numberOfRowsInSection:j]; ++i) 
    { 
     NSLog(@"%@", [shtoFushaTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]]); 
     [cells addObject:[shtoFushaTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]]]; //this is where i get an exception to add a null object 
    } 
} 

本次迭代的一點是在添加新文本字段之前存儲文本字段的值。 任何想法我做錯了什麼?

+0

你爲什麼不簡單地存儲文本......沒有必要存儲整個單元格。這是一個非常糟糕的做法,會讓你用完內存。 – borrrden 2014-09-25 07:28:34

+0

我存儲了這個循環之後的文本,就像這個'for(ShtoFushaTableViewCell * cell in cells) {attributeValues replaceObjectAtIndex:k withObject:cell.listingValue.text]; k ++; }' – Elgert 2014-09-25 07:31:01

+0

我沒有理由像這樣存儲單元...數據源的重點是將單元與數據源分開。無論如何,這可能是因爲該單元當前不在屏幕上。 – borrrden 2014-09-25 07:32:06

回答

0

問題可能是重用表格視圖單元格:
當它們滾動出視圖時,它們會放回到單元格池中,並且單元格中的所有數據可能會消失。
因此,您應該從來沒有存儲任何東西在表格視圖單元格,除了顯示。
您必須將數據存儲在數據模型中,並從那裏讀取它們以顯示在單元格中。

+0

我有一個NSMutableArray與每個文本字段中的字符串,問題是當添加一個新的單元格時,我必須記住什麼文本字段已被填充,所以他們不會變空 – Elgert 2014-09-25 07:36:40

+0

現在我明白爲什麼它的壞習慣,猜我仍然困。現在我將文本值保存在文本字段的didEndEditing委託中:) – Elgert 2014-09-25 07:42:10

相關問題