L'échec d'Assertion dans -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]

Pour une raison quelconque, mon application est en défaut lorsque vous essayez de charger les cellules dans le tableview. Tous mes tableviews tout au long de l'app sont exactement les mêmes et je n'ai pas de problèmes avec eux. Pourrait-il possible d'avoir à faire avec de l'initialisation du Contrôleur à partir d'un autre viewController? Je ne le pense pas. Ma cellule dans la table de montage séquentiel a été donné à l'identificateur. Voici un lien vers une capture d'écran.

L'échec d'Assertion dans -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]

Donc, j'ai tout essayé ici et rien n'a fonctionné.

Ici est la sortie en utilisant le [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath de la méthode]:

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  

Et voici mon code pour la UITableView Contrôleur:

#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

Merci pour chacuns de l'aide. Je suis un peu désespérée.

  • Il me semble que vous êtes en utilisant une classe personnalisée ProcedureTableViewCell pour la réalisation de votre cellule. Assurez-vous que vous n'êtes pas le remplacement de la cellule identifiant en quelque sorte à l'intérieur
  • Tout ce que je fait dans cette classe était céder la IBOutlets pour le label et la UIImage.
  • Avez-vous mis le Class de votre Prototype de Cellule pour être ProcedureTableViewCell. Est ProcedureTableViewCell une sous-classe de UITableViewCell.
  • Prototype ne demandez à la classe de ProcedureTableViewCell, c'est une sous-classe si UITableViewCell.
  • La classe pour le prototype de cellule doit avoir été mis à ProcedureTableViewCell de l'identité de l'inspecteur, comme il semble, comme à partir de votre conception
  • La classe à partir de l'identité de l'inspecteur est fixé à ProcedureTableViewCell.
  • double possible de l'échec d'Assertion dans dequeueReusableCellWithIdentifier:forIndexPath:
  • ce qui signifie que, "assurez-vous que vous n'êtes pas le remplacement de la cellule identifiant en quelque sorte à l'intérieur' ? identificateur est défini au storyboard et je sais qu'il n'y a pas de code de la modification de l'identifiant

InformationsquelleAutor jim_mc | 2013-11-14