我正在使用registerNib:forCellReuseIdentifier:从 nib b/c 加载单元格,有人告诉我,我总是可以从 [tableView dequeueReusableCellWithIdentifier:] 获取单元格,从而减少那些样板代码。
我总是得到一个单元格,但问题是我的 IBAction(我的单元格中的一个按钮)通过引发异常“NSInvalidArgumentException”开始失败,原因是:xxx unrecognized selector sent to instance。
如果我删除调用 registerNib:forCellReuseIdentifier: 并像往常一样添加这些代码(如下),一切正常。所以我猜这个问题是由这个电话引起的。
那么我做错了什么?
顺便说一句,我将单元格 nib 文件的文件所有者设置为我的表格视图控制器。“Programming IOS 5”在这种情况下说“无需在 nib 中指定 File's Owner 类”,但由于我需要设置 IBAction,所以我仍然设置它。我不认为这会导致问题,对吧?
//The "old" codes without calling registerNib:forCellReuseIdentifier:
UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCell"
owner:self
options:nil];
cell = [nib objectAtIndex:0];
...