Il est vraiment ahurissant de découvrir de nombreuses différences entre l'iPhone et les simulateurs. J'ai passé plusieurs heures à essayer de comprendre pourquoi mon application fonctionnait sur le simulateur mais s'est écrasée sur mon appareil iPhone. Il s'avère que le coupable est triéArrayUsingDescriptors. Y a-t-il plus de choses comme ça? S'il vous plaît partager avec moi.écrasé sur l'iphone mais pas sur le simulateur
Pour partager avec vous sur la question et les correctifs:
code écrasé sur l'iPhone, mais pas simulateur
NSSortDescriptor* aDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"count" ascending:NO] autorelease];
NSArray* anNsArray = [[NSArray alloc] init];
NSArray* aSortedNsArray = [[NSArray alloc] init];
aSortedNsArray = [anNsArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:aDescriptor]];
La question est sur [NSArray arrayWithObject:aDescriptor]
;
Les corrections doivent créer un tableau pour stocker:
NSArray* descriptorArray = [[NSArray alloc] initWithObjects:countDescrp, nil];
aSortedNsArray = [anNsArray sortedArrayUsingDescriptors:descriptorArray];
Wayne Campbell, CA
Encore: Le code que vous avez posté n'est pas responsable de l'accident que vous avez rencontré. Dans votre question, vous avez déclaré que 'sortedArrayUsingDescriptors' ne fonctionne pas comme prévu sur le périphérique, ce qui est faux. Votre bug est probablement dû à une mauvaise gestion de la mémoire. Il suffit de piquer autour, en commutant 'arrayWithObject:' pour 'initWithObject:' sans comprendre ce qui se passe n'est pas vraiment utile. Mon conseil est: Lire et comprendre le guide de gestion de la mémoire Cocoa: http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html –