断言失败 - [UITableView dequeueReusableCellWithIdentifier:forIndexPath:] [英] Assertion failure in -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]

查看:116
本文介绍了断言失败 - [UITableView dequeueReusableCellWithIdentifier:forIndexPath:]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于某些原因,我的应用程序在尝试将单元格加载到tableview时失败。我在整个应用程序中的所有表格视图完全相同,我对它们没有任何问题。是否可能与从另一个viewController初始化Controller有关?我不这么认为。故事板中的我的单元格已被赋予标识符。这是一个屏幕截图的链接。

For some reason my app is failing when trying to load up the cells into the tableview. All of my tableviews throughout the app are exactly the same and i have no issues with them. Could it possible have to do with initializing the Controller from another viewController? I wouldn't think so. My cell in the storyboard has been given the identifier. Here is a link to a screen shot.

所以我已经尝试了所有的东西这里并没有任何效果。

So i have tried everything here and nothing has worked.

这是使用[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]方法输出:

Here is the output using the [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath] method:

2013-11-14 15:36:33.419 ComplyOS[43683:70b] *** Assertion failure in -[UITableView            dequeueReusableCellWithIdentifier:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-2903.23/UITableView.m:5261
2013-11-14 15:36:33.424 ComplyOS[43683:70b] *** Terminating app due to uncaught exception    'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier ProcedureCell - must register a    nib or a class for the identifier or connect a prototype cell in a storyboard'
*** First throw call stack:
(
0   CoreFoundation                      0x0000000101fa9795 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x0000000101d0c991 objc_exception_throw + 43
2   CoreFoundation                      0x0000000101fa961a +[NSException raise:format:arguments:] + 106
3   Foundation                          0x00000001018a99e9 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
4   UIKit                               0x00000001008f9879 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 150
5   ComplyOS                            0x00000001000099b4 -[EndoPxTableViewController tableView:cellForRowAtIndexPath:] + 116
6   UIKit                               0x0000000100902b8a -[UITableView _createPreparedCellForGlobalRow:withIndexPath:] + 348
7   UIKit                               0x00000001008ea836 -[UITableView _updateVisibleCellsNow:] + 2297
8   UIKit                               0x00000001008fb381 -[UITableView layoutSubviews] + 207
9   UIKit                               0x0000000100892b27 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 354
10  QuartzCore                          0x00000001005afa22 -[CALayer layoutSublayers] + 151
11  QuartzCore                          0x00000001005a4589 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 363
12  QuartzCore                          0x00000001005a440a _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
13  QuartzCore                          0x0000000100519694 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 252
14  QuartzCore                          0x000000010051a70c _ZN2CA11Transaction6commitEv + 394
15  QuartzCore                          0x000000010051ad79 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 89
16  CoreFoundation                      0x0000000101f74ff7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
17  CoreFoundation                      0x0000000101f74f67 __CFRunLoopDoObservers + 391
18  CoreFoundation                      0x0000000101f546d2 __CFRunLoopRun + 946
19  CoreFoundation                      0x0000000101f53f33 CFRunLoopRunSpecific + 467
20  GraphicsServices                    0x0000000103c2b3a0 GSEventRunModal + 161
21  UIKit                               0x0000000100837043 UIApplicationMain + 1010
22  Comply                              0x0000000100002703 main + 115
23  libdyld.dylib                       0x00000001029ed5fd start + 1
24  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException  

这是我的UITableView控制器的代码:

And here is my code for the UITableView Controller:

#import "EndoPxTableViewController.h"
#import <AFHTTPRequestOperationManager.h>
#import "ProcedureTableViewCell.h"

@interface EndoPxTableViewController (){}

@property (nonatomic, strong)NSArray *procedures;
@end

@implementation EndoPxTableViewController


- (void)setVisitItem:(Patient_VisitsModel *)visitItem{
if(_visitItem !=visitItem){
    _visitItem = visitItem;
     }
}

 -(void)setUserId:(NSString *)userId{
     if(_userId !=userId){
         _userId = userId;
    }
[self fetchProceduresData];
}


- (void) fetchProceduresData{
NSString *procedureURLString =[NSString stringWithFormat:@"https://XXXX";


AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:procedureURLString parameters:nil success:^(AFHTTPRequestOperation *operation, id json) {


    _procedures = json;
    [self.tableView reloadData];

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error occured in getSessionID method");
    NSLog(@"Error: %@", error);

}];
 }

 - (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
}
return self;
 }

- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Endoscopy Report";
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"Procedures:%@", [_procedures valueForKey:@"description"]);
return _procedures.count;
 }

 - (ProcedureTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
static NSString *CellIdentifier = @"ProcedureCell";
ProcedureTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
NSString *procedureDescription = [_procedures[indexPath.row] valueForKey:@"description"];
NSLog(@"Procedure Description:%@", procedureDescription);


cell.procedureLabel.text = procedureDescription;
cell.questionImage.image = nil;

return cell;
 }

#pragma mark - Navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
}

@end

感谢大家的帮助。我有点绝望了。

Thanks for everyones help. I am getting a little desperate.

推荐答案

我的不好!似乎你正在使用 dequeueReusableCellWithIdentifier:forIndexPath:出列单元格的方法。请尝试 dequeueReusableCellWithIdentifier:,它应该可以工作。

My bad! It seems to be you are using dequeueReusableCellWithIdentifier:forIndexPath: method for dequeueing cell. Please try dequeueReusableCellWithIdentifier: instead and it should work.

dequeueReusableCellWithIdentifier:forIndexPath:需要一个nib文件或一个注册类来出列单元格,但是你正在使用storyboard prototype cell。并且 dequeueReusableCellWithIdentifier:保证在使用正确的标识符时从故事板返回一个单元格。

dequeueReusableCellWithIdentifier:forIndexPath: expects a nib file or a registered class for dequeueing cells but you are using storyboard prototype cell. And dequeueReusableCellWithIdentifier: is guaranteed to return a cell from storyboard if you use correct identifier.

希望它有所帮助。

这篇关于断言失败 - [UITableView dequeueReusableCellWithIdentifier:forIndexPath:]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆