'UITableView'没有@interface声明select器'initWithStyle:reuseIdentifiers

我是iOS开发新手,我正在寻找一些关于我的UITableView问题的帮助。

那么,我正在研究有关UITableView代码的一切,并且在开发过程中,当我尝试重新使用标识符(如果在接口上没有创build单元格),XCode会显示以下消息:

“没有可见的@interface for'UITableView'声明select器'initWithStyle:reuseIdentifier:”

有代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *identifier = @"Cell"; UITableView *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if(cell ==nil) { cell = [[[UITableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]; } 

有人可以帮我吗?

 UITableView *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 

应该

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; 

你应该像这里所做的那样分配一个UITableViewCell而不是UITableView

  //should be **UITableViewCell** cell = [[[UITableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]; 

不要忘记以后再回来

 return cell; 

错误消息说明了这一切。 你正在调用一个错误的类的方法…你只需要设置类和分配一个UITableViewCell而不是UITableView

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *identifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if(cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]; } // ... 

使用下面的代码而不是你的代码。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell==nil) { cell=[[UITableViewCell alloc]initWithFrame:CGRectZero]; } 

保存了我的一天。 取代了我的代码 – 用这个代码评论了它,然后它就起作用了。 不知道为什么! 但是谢谢。

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // static NSString *identifier = @"cell"; // UITableViewCell *cell = [tableView dequeueReusableCellWithIndentifier:@"cell"]; static NSString *CellIdentifier = @"cell"; UITableViewCell *cell=(UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil ) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell.accessoryType = UITableViewCellAccessoryNone; } return cell; }