故事板警告:原型表格单元格必须具有重用标识符

时间:2012-03-21 16:17:34

标签: iphone ios xcode storyboard

我从故事板中收到此警告 - 原型表格单元格必须具有重用标识符。

我已在属性检查器中重命名了标识符,但似乎没有删除警告。

有什么建议吗?

10 个答案:

答案 0 :(得分:153)

要关闭警告,您必须为单元格标识符命名:

enter image description here

答案 1 :(得分:17)

另一种方法是在属性检查器中将表视图的“原型单元”属性设置为零,如果您以编程方式使用.xib定义单元格。

Setting prototype cells to 0 in Attributes Inspector

答案 2 :(得分:9)

由于故事板实际上是XML文件,因此另一个技巧是使用任何文本编辑器(而不是Xcode!)打开故事板并尝试查找所有tableViewCell节点。例如,按 CMD + F ,键入<tableViewCell contentMode="scaleToFill",然后按Enter键。您可能会发现,与此相同的行:

<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="GenericCellID" id="kBr-Qn-Tki">

请注意reuseIdentifier="GenericCellID"键值。 触发警告的行(没有重用标识符)将不具有此键值。根据aleroot的回答,在文本编辑器中查看上面的节点,您将看到需要在Xcode的故事板编辑器中检查并修复的tableViewController节点。

答案 3 :(得分:4)

如果您的Xcode警告在设置了reuseIdentifier之后仍然没有消失,请尝试菜单&#34;产品 - &gt;清洁&#34 ;.这对我有帮助,之后,警告再也没有出现了。

答案 4 :(得分:2)

冰雹玛丽:重启XCode对我有用(但可能只是需要手动重建)。

答案 5 :(得分:1)

我收到了Xcode 7的警告。我正在使用Swift。 我没有为初始视图控制器添加导航控制器。当我这样做时......我从StoryBoard得到了这个警告。 我做的是:

  1. 有两个segue
    1. 从导航控制器到根视图控制器和
    2. 从Root View控制器到您的初始View控制器。
  2. 选择将根视图控制器连接到的segue 初始视图控制器。
  3. 将标识符命名为
  4. 选择控制器的“原型”部分 - &gt;那里 你会看到标识符作为选项。
  5. 粘贴与之前输入的标识符相同的名称。
  6. 警告如果......如果不清理sdk:)

答案 6 :(得分:1)

确保您在对象上设置重用标识符,而不是恢复ID 。两者都可以通过故事板获得,并且容易混淆。

在故事板XML文件中,您希望设置reuseIdentifier,而不是restorationIdentifier

答案 7 :(得分:0)

我注意到当你有多个原型单元格(在tableview属性中)并且没有给它们所有重复使用标识符时会发生这个错误。

答案 8 :(得分:0)

标识符是您在.m文件中引用的名称。如果未填充,则无法引用该单元格。

答案 9 :(得分:0)

这用于通过编程方式设置重用标识符

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath 
{
    static NSString *cellIdentifier = @"wot";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

    if (!cell)
        cell = [[UITableViewCell alloc] initWithStyle: someStyle reuseIdentifier: cellIdentifier];

    return cell;
}