因此,我正在为我的学校做一个RSS阅读器,并完成了代码。我进行了测试,结果给了我这个错误。这是它所指的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath];
if (cell == nil) {
cell =
[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier];
}
这是输出中的错误:
2012-10-04 20:13:05.356 Reader [4390:c07] *断言失败
-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:],/ SourceCache / UIKit_Sim / UIKit-2372 / UITableView.m:4460 2012-10-04
20:13:05.357 Reader [4390:c07] *由于未捕获而终止了应用程序
异常“ NSInternalInconsistencyException”,原因:“无法
使具有标识符Cell的单元出队-必须注册一个笔尖或一个类
标识符或在情节提要中连接原型单元”
*第一个抛出调用堆栈:(0x1c91012 0x10cee7e 0x1c90e78 0xb64f35 0xc7d14 0x39ff 0xd0f4b 0xd101f 0xb980b 0xca19b 0x6692d 0x10e26b0
0x228dfc0 0x228233c 0x228聋0x1058cd 0x4e1a6 0x4ccbf 0x4cbd9 0x4be34
0x4bc6e 0x4ca29 0x4f922 0xf9fec 0x46bc4 0x47311 0x2cf3 0x137b7 0x13da7
0x14fab 0x26315 0x2724b 0x18cf8 0x1becdf9 0x1becad0 0x1c06bf5
0x1c06962 0x1c37bb6 0x1c36f44 0x1c36e1b 0x147da 0x1665c 0x2a02 0x2935)
libc ++ abi.dylib:终止调用引发异常
这是它在错误屏幕中显示的代码:
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
请帮忙!
最佳答案
您正在使用dequeueReusableCellWithIdentifier:forIndexPath:
方法。该方法的documentation表示:
重要说明:调用此方法之前,必须使用registerNib:forCellReuseIdentifier:
或registerClass:forCellReuseIdentifier:
方法注册类或nib文件。
您没有为重用标识符"Cell"
注册笔尖或类。
查看您的代码,您似乎期望dequeue方法在没有单元格的情况下返回nil
。您需要针对该行为使用dequeueReusableCellWithIdentifier:
:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
请注意,
dequeueReusableCellWithIdentifier:
和dequeueReusableCellWithIdentifier:forIndexPath:
是不同的方法。请参阅doc中的the former和the latter。如果您想了解为什么要使用
dequeueReusableCellWithIdentifier:forIndexPath:
,check out this Q&A。关于ios - dequeueReusableCellWithIdentifier:forIndexPath中的断言失败:,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34305239/