2012-05-03 85 views
0

我已經看到與其他許多人的這個問題,通過所有的主題,但我似乎無法找到一個解決方案。當滾動列表時,應用程序崩潰

所以我有一個普通的表格視圖,一個單元格鏈接到一個.xib文件,首先啓動一切看起來很正常,但一旦我開始滾動應用程序崩潰立即。

通過讓殭屍對象我得到這個錯誤:

2012-05-03 16:18:13.008 coop_dev[27547:f803] * -[ActivityTableViewController tableView:cellForRowAtIndexPath:]: message sent to deallocated instance 0x6853990

但我不知道要尋找什麼,或者什麼可能出錯:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 
    ItemCell *cell = (ItemCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if(cell == nil) 
    { 
     NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ItemCell" owner:nil options:nil]; 
     cell = [topLevelObjects objectAtIndex:0]; 
    } 

    Item *item = [self.activity objectAtIndex:indexPath.row]; 

    [[cell projectLabel] setText:item.project]; 
    [[cell descriptionLabel] setText:item.description]; 
    [[cell timeLabel] setText:item.time]; 
    [[cell timeAgoLabel] setText:item.timeAgo]; 
    //cell.avatar = [UIImageView item.avatar]; 

    cell.descriptionLabel.numberOfLines = 0; 
    [cell.descriptionLabel sizeToFit]; 

    // remove the right arrow 
    cell.accessoryType = UITableViewCellAccessoryNone; 

    return cell; 
} 

它工作正常,在第一次發射但只是崩潰

編輯

後,我重新創建一個新的問題項目,只是一個包含一些數據的基本表格,一旦你開始滾動它崩潰。下載:http://dl.dropbox.com/u/274185/TestTable.zip

+0

嘗試確保self.activity不爲零 – danielbeard

+0

我設置了一些斷點,但在它到達之前似乎崩潰了 –

+0

我不認爲您發佈的代碼與您的問題有關。請發佈實例化ActivityTableViewController的代碼。 –

回答

2

在您的FirstViewController.xib中,刪除UITableViewController,但保留UITableView。發生崩潰的原因是File's Owner已被設置爲Identity Inspector中的FirstViewController類,就好像您有第二個UITableViewController。請確保UITableView已連接到控制器的視圖插座。

+0

這對那個應用程序是有意義的,然後在我正在工作現在的結構有點不同:http://dl.dropbox.com/u/274185/coop_dev.zip –

+0

問題是在你的ActivityViewController.xib相同 - 刪除UITableViewController那裏,但離開UITableView – graver

+0

但是,將如何我以這種方式控制桌子?它現在由ActivityViewTableController控制 –

0

你出列碼是有點過...嘗試礦:

 UITableViewCell *cell = [[UITableViewCell alloc] init]; 
cell = nil; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
            reuseIdentifier:@"cell"] 
      autorelease]; 


    cell.imageView.image = nil; 
    cell.textLabel.text = nil; 

} 
+0

OP要從NIB的單元格,而不是創建一個新的。 – ssteinberg

0

檢查ItemCelldealloc方法,你可能overreleasing東西。

+0

我只有[super dealloc];在這裏,這是我的ItemCell作爲參考:http://pastebin.com/2J37Gjx2 –

+0

請看看我的編輯,我附上了一個演示項目 –