我知道這個問題已經被回答過了,但是我對收到的代碼審查有點困惑。我建立了一個定製的細胞電話OpeningsTableViewCell
,併爲細胞定製了xib。在我 cellForRowAtIndexPath
方法我的代碼如下:自定義TableView單元重用代碼審查問題
static NSString *reuseIdentifier = @"OpeningsTableViewCell";
OpeningsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
if (cell == nil) {
cell = (OpeningsTableViewCell *)[[[NSBundle mainBundle] loadNibNamed:reuseIdentifier owner:nil
options:nil] objectAtIndex:0];
}
我接到一個同事的代碼審查,說:「這將導致細胞創建每次」但我一直做定製單元就這樣了,我不能在線查找任何不同的信息。試圖看看有什麼不對,想什麼?
你註冊的筆尖文件?檢查每次創建單元格的最佳方法是在if語句中放置一個斷點 – 2014-11-03 00:00:56
雖然我很久以前搬到故事板,所以可能不記得細節。我唯一會關心的就是'owner:nil';我期望'owner:self'。但除此之外,這似乎是它不會每次都會導致單元格創建,儘管它是舊式代碼。您最初將創建足夠的單元格來填充視圖(加上一對),之後它們將被回收。但請查看「registerNib:forCellReuseIdentifier:」或故事板,以便刪除「if(cell == nil){...}」代碼部分。 – 2014-11-03 00:44:52
這看起來很好,這是舊式編碼。雖然正確的代碼審查意見應該是使用'dequeueReusableCellWithIdentifier:forIndexPath:';) – GoodSp33d 2014-11-03 04:35:42