2011-03-08 82 views
0

得到了下面這條mem泄漏的警告......爲什麼這是一個mem泄漏?

有什麼想法嗎?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    NSUInteger row = [indexPath row]; 

    UITableViewCell *cell = [self newOrReusableCell]; 


    cell.textLabel.text = [_evaluationArray objectAtIndex:row]; 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 

    return cell; 

} 

感謝

編輯:下面就警告: ...對象上線128分配,並存儲到「細胞」是由他的名字的方法返回(「的tableView:的cellForRowAtIndexPath:」)不不包含「複製」或以「新」或「分配」開頭。這違反了Cocoa的內存管理指南(對象泄露)給出的命名約定規則

+0

你使用什麼編譯器?這是我見過的最好的編譯器警告:O – 2011-03-08 21:14:18

+0

可能是Clang/LLVM。 – Wevah 2011-03-08 23:13:18

+0

@ Wevah我總是使用Clang,但我從來沒有見過這樣的警告。 – 2011-03-09 12:19:12

回答

0

啊!算了吧!找到答案..是我給我的單元命名的方式......

+1

問題是該方法以'new'開頭,這在標準的Obj-C命名約定中意味着該方法返回一個保留的對象。 – Wevah 2011-03-09 19:52:35