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

我从故事板得到了这个警告——原型表单元格必须具有重用标识符。

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

有什么建议吗?

82198 次浏览

要关闭警告,您必须为单元格标识符提供一个名称:

enter image description here

我已经注意到,当您有多个原型单元格(在表视图属性中)并且没有为其中的 所有提供重用标识符时,就会发生此错误。

这个标识符是您在自己身上引用的名称。M 档案。如果没有填充,则不可能引用该单元格。

由于情节串连图板实际上是 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 的回答,在你的文本编辑器中查看上面的节点,你会看到带有类名的 tableViewController节点,你需要在 Xcode 的故事板编辑器中检查并修复它。

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

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

因为双击这个警告可能会导致一些徒劳无功的行为(特定的 UITableViewCell 没有被选中) ,所以我想补充一点,虽然其中一些警告会自动解析,但是 有些则不会

如果您确信已经在 Storyboard 中标记了所有单元格,那么重新构建项目-您的警告可能会消失(正如我的警告一样)。

另一种方法是,如果使用。通过编程实现 xib。

Setting prototype cells to 0 in Attributes Inspector

我收到 Xcode 7的警告,我和 Swift 一起工作。 我没有为初始视图控制器添加导航控制器。当我这么做的时候。.故事板给了我这个警告。 我所做的是:

  1. 有两个转折点
    1. 从导航控制器到根视图控制器
    2. 从根视图控制器到初始视图控制器。
  2. 选择将根视图控制器连接到 初始视图控制器初始视图控制器。
  3. 命名标识符
  4. 选择控制器的“ Prototype”写入部分—— > 这里 您将看到标识符作为一个选项。
  5. 粘贴与前面输入的标识符相同的名称。

警告是. . 如果不清理 sdk:)

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

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

孤注一掷: 重新启动 XCode 对我来说很有用(但可能只是需要进行手动重新构建)。

如果在设置了 reuseIdentifier 之后,Xcode 警告仍然没有消失,那么尝试菜单“ Product-> Clean”。这对我很有帮助,在那之后,警告再也没有出现过。