'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; }