我从故事板中收到此警告 - 原型表格单元格必须具有重用标识符。
我已在属性检查器中重命名了标识符,但似乎没有删除警告。
有什么建议吗?
答案 0 :(得分:153)
要关闭警告,您必须为单元格标识符命名:
答案 1 :(得分:17)
答案 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得到了这个警告。 我做的是:
警告如果......如果不清理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;
}