3

テーブルビューのデータソースをプログラムで設定しようとしています.作成したクラスがあり、実装しています(実装が適切な言葉であるかどうかはわかりません.OCの初心者です.Javaから来ました)UITableViewDataSourceプロトコル.

@interface PlaylistController : NSObject <UITableViewDataSource, UITableViewDelegate>

メソッドでデータソースを割り当てようとしましたがViewController、.viewDidLoadEXC_BAD_ACCESS

[playlistView setDataSource:[[PlaylistController alloc] initWithPlaylist:playlist]];

そして、私は理由を知りませんか?

ここを読むと(SO)、キャストの問題(ただし、必要なプロトコルを実装しています)またはメモリ管理の問題(ただし、ARCを使用しており、リリースにはまったく触れていません)のいずれかであることがわかります

4

2 に答える 2

3

それ以外の

[playlistView setDataSource:[[PlaylistController alloc] initWithPlaylist:playlist]];

使用する

[playlistView setDataSource:self];

理由:

にあるインスタンスに DataSource を設定しようとしましたautorelease。解放され、エラーが発生します。

selfクラスの現在のインスタンスを指すように、dataSource を に設定する必要があります。

于 2013-02-28T16:46:48.133 に答える
0

UITableView オブジェクトがどこにも設定されていません。

IBOutlet が作成され、Nib ファイルの UITableView にリンクされていることを確認してください。

@interface PlaylistController : NSObject <UITableViewDataSource, UITableViewDelegate>

IBOutlet UITableView* tableView;

@end

Then in your viewDidLoad you can do:

[tableView setDataSource:self]
于 2013-02-28T16:45:58.623 に答える