为了账号安全,请及时绑定邮箱和手机立即绑定

dequeueReusableCellWithIdentifier:forIndexPath:

dequeueReusableCellWithIdentifier:forIndexPath:

慕哥6287543 2019-07-04 13:04:44
dequeueReusableCellWithIdentifier:forIndexPath:中的断言失败所以我为我的学校制作了一个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阅读器[4390:C07]*断言失败出现在-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:],/SourceCache/UIKit_Sim/UIKit-2372/UITableView.m:4460 2012-10-04 20:13:05.357 Reader[4390:C07]*由于“NSInternalInconsistencyException”异常终止应用程序,原因是:“无法用标识符单元格排出单元格-必须为标识符注册一个nib或类,或者在情节提要中连接一个原型单元格”*First throw call stack:(0x1c91012 0x10cee7e 0x1c90e78 0xb64f35 0xc7d14 0x39ff 0xd0f4b 0xd101f 0xb980b 0xca19b 0x6692d 0x10e26b0 0x228dfc0 0x228233c 0x228deaf 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:terminate called throwing an exception下面是它在错误屏幕中显示的代码:int main(int argc, char *argv[]){     @autoreleasepool {         return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));     }}救命啊!
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

你用的是dequeueReusableCellWithIdentifier:forIndexPath:方法。这个文献资料对于该方法来说,如下所示:

重要:必须使用registerNib:forCellReuseIdentifier:registerClass:forCellReuseIdentifier:方法之前调用此方法。

您没有为重用标识符注册nib或类"Cell".

查看您的代码,您似乎期望deQueue方法返回。nil如果它没有手机给你。您需要使用dequeueReusableCellWithIdentifier:对于这种行为:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

注意dequeueReusableCellWithIdentifier:dequeueReusableCellWithIdentifier:forIndexPath:是不同的方法。见医生前者后者.

如果你想知道为什么你想用dequeueReusableCellWithIdentifier:forIndexPath:看看这个问答.


查看完整回答
反对 回复 2019-07-04
?
忽然笑

TA贡献1806条经验 获得超5个赞

我也有同样的问题

static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

   if (cell==nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

    }


查看完整回答
反对 回复 2019-07-04
  • 3 回答
  • 0 关注
  • 939 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信