UITableView de charge d'une Cellule Personnalisé de PLUME fichier jette NSInternalInconsistencyException

Dans une application ios, j'ai un UITableView. Dans le cellForRowAtIndexPath méthode que j'ai besoin de retourner une cellule personnalisé en utilisant son nom de PLUME. Pour cela j'ai utiliser loadNibNamed. (Je vais remplir les données dans la cellule après le chargement dans le "willDisplayCellforRowAtIndexPath')

MyItemCell est un fichier XIB (MyItemCell.xib) qui contient 2 UIImageView et un UIButton (Chaque élément a une balise)

C'est mon code:

Dans mon viewController

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [ViewHelper loadCustomCellWithNibName:@"MyItemCell" owner:self];
}

Et la méthode de charge de la cellule Personnalisé de PLUME

+ (UITableViewCell *) loadCustomCellFromNib:(NSString *)nibName owner:(id)owner
{
    UITableViewCell *cell = nil;
    NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:nibName owner:owner options:nil];
    if([nibObjects count] > 0 )
    {
        cell = [nibObjects objectAtIndex:0];
    }
    else
    {
        NSLog(@"Failed to load %@ XIB file!", nibName);
    }
    return cell;
}

Tout fonctionne correctement dans tous les tests. Cependant, j'ai reçu un crash de certains utilisateurs qui j'ai été incapable de se reproduire.

C'est le crash:

NSInternalInconsistencyException

Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/7A24cE79-131F-523F-4C00-23B523ARG123/MyApp.app> (loaded)' with name 'MyItemCell'

La trace de la pile:

0 CoreFoundation                        0x39b432a3 __exceptionPreprocess + 163 + 162

1 libobjc.A.dylib                       0x33a3297f objc_exception_throw + 31 + 30

2 CoreFoundation                        0x39b431c5 -[NSException initWithCoder:] + 1

3 UIKit                                 0x32e12491 -[UINib instantiateWithOwner:options:] + 1637 + 1636

4 UIKit                                 0x32e1a1d7 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 139 + 138

5 MyApp                                 0x00047ded +[ViewHelper loadCustomCellFromNib:owner:] (ViewHelper.m:349)

6 MyApp                                 0x00034003 -[BuildViewController tableView:cellForRowAtIndexPath:] (BuildViewController.m:2432)

7 UIKit                                 0x32cc0545 -[UITableView(UITableViewInternal) _createPreparedCellForGlobalRow:withIndexPath:] + 413 + 412

8 UIKit                                 0x32ca530b -[UITableView(_UITableViewPrivate) _updateVisibleCellsNow:] + 1311 + 1310

9 UIKit                                 0x32cbc7c7 -[UITableView layoutSubviews] + 207 + 206

10 UIKit                                0x32c78803 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 259 + 258 

Le problème est que je n'ai pas été en mesure de reproduire ce crash.

Aucune idée sur ce qui pourrait avoir causé l'accident? Ou toutes les solutions pour éviter une telle erreur?

Merci beaucoup pour toute aide

EDIT:

Juste pour clarifier plus, Cela fonctionne parfaitement bien sur tous les tests que je fais. Ce blocage est apparu seulement 1 fois pour 1 utilisateur, donc le problème n'est pas avec le code. Je suis juste à la recherche pour des raisons qui pourrait causer cet accident dans un scénario très spécifique. Grâce

La chose importante à retenir est que nibname et de la cellule identifiants sont différents. Nom de l'identité de l'inspecteur, l'identifiant est dans les attributs de l'inspecteur de

OriginalL'auteur Youssef | 2013-01-25