2011-12-23 52 views
0

我正在創建一個簡單的應用程序來從UITable中選擇視頻網址。我已經掛鉤了我的數據源和委託給UIViewController子類,並且表格被正確填充。此外,它可識別選擇並打印到日誌。隨機UITable選擇填充表時的代理崩潰

我的問題是,當我選擇一個單元格時,它會得到一個「EXC_BAD_ACCESS」並崩潰。我期待通過代碼和錯誤傳播到這個方法:

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString* cellIdentifier = @"SelectionIdentifier"; 

    //Errors start happening this next line 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if(cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease]; 
    } 
    //NSString* str = [[videos objectAtIndex:[indexPath row]] lastPathComponent]; 
    NSString* test = @"test"; 
    [[cell textLabel] setText:test]; 
    return cell; 
} 

-(void) tableView:(UITableView*)myTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
// NSLog(@"Selected!"); 
} 

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section { 
    return [videos count]; 
} 

我不知道爲什麼這個錯誤是在這種方法得到拋出。任何修復?我仔細檢查,以確保視頻陣列不是沒有。

我做了另一個應用程序,使用這種相同的方法,它不會導致這些錯誤。

任何幫助或建議將不勝感激!

+0

你可以繼續並顯示一些其他表函數的代碼?另外,請確保代表安裝得當。 – 2011-12-23 21:55:19

+0

當然。我已經更新了這些方法。這些是我爲委託和數據源實施的唯一方法。我還仔細檢查了故事板上的連接。 – user1035839 2011-12-23 22:07:29

+0

我把它聲明爲IBOutlet UITableView * tableView; – user1035839 2011-12-23 22:20:44

回答

0

而不是測試如果(cell == nil)嘗試使用if(!cell)。老實說,我不確定這是否是問題,但在回顧了這個之後,我並不認爲這個錯誤實際上並不在這個方法中(它可能在某種程度上是相關的,這就是爲什麼它會把你帶到這裏)。

如果這只是在您選擇一個單元格之後,爲什麼要調用此方法?

+0

我原本有(!cell),但改回它仍然使錯誤發生。我不確定爲什麼這個方法會被要求說實話。 didSelectRowAtIndexPath方法是空白的,目前不做任何事情。 – user1035839 2011-12-23 21:44:14

0

我想你也應該把這個method.Because這是初步的委託方法

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return 1; 
} 

看到您的tableView我沒有發現在all.Try可能將解決任何問題之後。