2011-12-23 2 views
0

私はUITableからビデオURLを選択する簡単なアプリケーションを作成しています。私は私のデータソースと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

他のテーブル関数のコードを表示することはできますか?また、代理人が適切に設定されていることを確認してください。 –

+0

私はこれらの方法を持つように更新しました。これらは、デリゲートとデータソースに対して実装した唯一のメソッドです。私はまた、ストーリーボード上の接続をダブルチェックしました。 – user1035839

+0

私はそれをIBOutlet UITableView * tableViewとして宣言しました。 – user1035839

答えて

0

の代わりにif(cell == nil)if(!cell)を試してみてください。正直なところ私はこれが問題であるかどうかはわかりませんが、これを見直した後では、エラーが実際にこのメソッドの内部にあるとは思われません。

セルを選択した後でなければ、このメソッドが呼び出されるのはなぜですか?

+0

私はもともとif(!cell)を持っていましたが、それを元に戻してもエラーは発生しました。なぜこの方法が正直に呼ばれているのか分かりません。 didSelectRowAtIndexPathメソッドは空白で、現時点では何もしません。 – user1035839

0

私はあなたにも、これは私はそれが解決になるかもしれall.Tryで任意の問題を見つけることではないのです、あなたのtableViewを見た後予備デリゲートメソッド

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

あるこのmethod.Becauseを呼ぶべきだと思います。

関連する問題