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


123

我从情节提要板上收到此警告-原型表单元必须具有重用标识符。

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

有什么建议?


您填写了错误的字段,或者您拥有多个表格视图。您可以发布属性检查器的屏幕截图吗?
jrturton 2012年

3
现在可以了。我找到了解决方案。Identifier的值应与重用标识符相同。:)
K.Honda 2012年

您是否为每个单元格设置了标识符?
米克麦卡勒姆

嗨,本田!您能告诉我您做了什么,因为我遇到了同样的错误。
Varun Mehta

2
我注意到有时(当前使用最新的Xcode 5 Beta 5(5B103i))在情节提要中突出显示错误/警告的错误位置。因此,如果您单击警告,它有时会显示错误的位置,在该位置可能已经修复了类似的警告。我确实建议手动浏览情节提要中的任何表视图,并检查是否存在其他任何缺少标识符的单元格。上面用这个警告解决了我的问题。感谢@ K.Honda提出问题,因为该主题帮助我了解如何解决此问题。
Justas 2014年

Answers:


159

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

在此处输入图片说明


14
发生在我身上 关闭xcode-打开它,然后更改标识符
Idan Magled

7
当警告仍然存在时,表示
故事板

如果您有多个原型单元,则必须给它们全部一个标识符,否则只需在原型单元中将数字设置为1
user1700737 2014年

6
我必须删除Derived Data文件夹(相当于Windows Reboot的Xcode)并进行重建才能摆脱这种虚假警告。
Michael McGuire 2015年

这对我有用:关闭Xcode,在Finder中打开/ Users / username / Library / Developer / Xcode / DerivedData,然后删除其所有内容(而不是DerivedData文件夹本身)。
dldnh

18

如果要以编程方式使用.xib定义单元格,则另一种方法是在Attributes Inspector中将Table View的“ Prototype Cells”属性设置为零。

在Attributes Inspector中将原型单元设置为0


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"键值。发出警告的行(没有重用标识符)将没有这样的键值。tableViewController根据aleroot的回答,在文本编辑器中查看上面的节点,您将看到具有类名称的节点,需要在Xcode的故事板编辑器中签入并进行修复。


1
实际上,您可以通过按CTRL +单击情节Open AsSource Code
提要


2

由于双击此警告可能会引起一些麻烦(不选择特定的UITableViewCell),因此只想添加一点,尽管其中一些警告会自动解决,而有些则不会

如果您确信已在Storyboard中标记了所有单元格,请重建项目-您的警告可能会消失(我的警告也是如此)。


2

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


1

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

  1. 有两个话题
    1. 从导航控制器到根视图控制器和
    2. 从Root View控制器到初始View控制器。
  2. 选择将根视图控制器连接到初始视图控制器的序列。
  3. 命名标识符
  4. 选择控制器的“原型”书面部分->在那里,您将看到标识符作为选项。
  5. 粘贴与先前输入的标识符相同的名称。

警告去..如果不清洁SDK :)


1

确保在对象上设置了“ 重用标识符 ”,而不是“ 恢复ID”。两者都可以通过情节提要获得,并且很容易混淆。

在故事板的XML文件,你会希望被设置reuseIdentifier,不restorationIdentifier


0

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


我也看到了这一点,是否可以立即命名所有单元格,还是可以通过其他方式删除这些警告?
CatsLoveJazz

1
每个原型单元都需要有自己的唯一名称。因此,没有办法自动执行
Vincent 2014年

0

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


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;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.