Xcode初学者;重用标识符?

时间:2014-07-04 08:24:04

标签: ios xcode reuseidentifier

我最近开始在Xcode 5中构建一个非常基本的待办事项列表作为我的第一个项目。几乎完成了UI设计和构建我现在停留在我的TableView中的数据实现。我在列表中添加了13个项目的列表,并在列表中给出了第一个“ListPrototypeCell”标识符,并且我的所有代码看起来都是正确的。我的项目有3个相同的问题:

Unsupported Configuration; Prototype cells must have reuse identifiers 

我已经玩过每个项目的标识符,虽然我被告知我不需要在每个项目上使用标识符,但我仍然会遇到这些错误。

我愿意将我的项目发送给任何认为他们可以帮助我解决问题的人,对于受过训练的人来说,这可能是我犯下的一个非常基本的错误。

我感谢任何帮助!

5 个答案:

答案 0 :(得分:16)

试试这个 检查您的故事板并确认您的prototypeCell有重用标识符,

enter image description here

中使用相同的标识符
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"sameReuseIdentifier"];

答案 1 :(得分:2)

进入故事板,转到视图控制器,转到表格视图,转到tableviewcell,转到身份检查器,然后在字段中输入一些内容,其中显示"重用标识符"

您可以使用重用标识符根据表格视图中的样式初始化单元格,如下所示:

UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"reuseIdentifier"];

答案 2 :(得分:1)

reuseidentifier是一个id,您可以从中获取单元格。 如果设置重用ID“cell”,则可以在cellForRowAtIndexPath方法中访问此单元格

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}

这意味着从重复使用“cell”获取来自stroyboard的单元格。 在你的情况下,你必须写两行以下

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
}

此行显示每次新单元格将被分配和初始化,并且它不使用原型单元格。

所以从未使用故事板中的原型单元格。如果你想,我可以给你演示,提一下它是如何工作的。

答案 3 :(得分:0)

您收到该错误的原因是因为您的某些原型单元格上没有重用标识符。

如果您不了解如何/何时使用原型和重用-id。你应该阅读:Table View Programming Guide for iOS

答案 4 :(得分:0)

我知道这已经过时了,但是我看到了重用标识符的这种解释,它确实帮助我理解了为什么要使用重用标识符,所以我想分享它以帮助其他人。

" reuseIdentifier用于将UITableView中的相似行组合在一起;即,仅在内容上有所不同但行的布局相似的行。

UITableView通常会分配足够的UITableViewCell对象来显示表格中可见的内容。如果将reuseIdentifier设置为非零值,则在滚动表视图时,UITableView将首先尝试使用相同的reuseIdentifier重用已分配的UITableViewCell。如果尚未设置reuseIdentifier,则UITableView将被强制为每个滚动到视图中的新项目分配新的UITableViewCell对象,这可能导致延迟动画。"