我从故事板得到了这个警告——原型表单元格必须具有重用标识符。
我已经在属性检查器中重命名了标识符,但它似乎没有删除警告。
有什么建议吗?
要关闭警告,您必须为单元格标识符提供一个名称:
我已经注意到,当您有多个原型单元格(在表视图属性中)并且没有为其中的 所有提供重用标识符时,就会发生此错误。
这个标识符是您在自己身上引用的名称。M 档案。如果没有填充,则不可能引用该单元格。
由于情节串连图板实际上是 XML 文件,所以另一个技巧是使用任何文本编辑器(而不是 Xcode!)打开情节串连图板并尝试查找所有 tableViewCell 节点。例如,按 CMD + F,键入 <tableViewCell contentMode="scaleToFill",然后按 Enter。你可能会发现,这行和这行一样:
<tableViewCell contentMode="scaleToFill"
<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 的故事板编辑器中检查并修复它。
reuseIdentifier="GenericCellID"
tableViewController
这用于以编程方式设置重用标识符
-(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。
我收到 Xcode 7的警告,我和 Swift 一起工作。 我没有为初始视图控制器添加导航控制器。当我这么做的时候。.故事板给了我这个警告。 我所做的是:
警告是. . 如果不清理 sdk:)
确保在对象上设置的是 重用标识符,而不是 修复身份证。两者都可以通过故事板获得,并且很容易混淆。
在故事板 XML 文件中,您需要设置 reuseIdentifier,而不是 restorationIdentifier。
reuseIdentifier
restorationIdentifier
孤注一掷: 重新启动 XCode 对我来说很有用(但可能只是需要进行手动重新构建)。
如果在设置了 reuseIdentifier 之后,Xcode 警告仍然没有消失,那么尝试菜单“ Product-> Clean”。这对我很有帮助,在那之后,警告再也没有出现过。