Récemment, j'ai trouvé un problème intéressant lié à l'initialisation de NSNumber.Numéro d'initialisation de NSNumber
La différence s'est produite entre le simulateur (9.3.1) et le périphérique (9.3.1).
Supposons que nous avons int x = 2; Maintenant, nous initialisons NSNumber et le passons à une méthode.
NSNumber *test = [NSNumber numberWithInt:self.x];
[self.method setTestNumber: test];
Ces deux lignes ont eu un résultat correct sur le simulateur et le périphérique.
MAIS en utilisant uniquement cette ligne
[self.method setTestNumber:[NSNumber numberWithInt:self.x]];
avait résultat tout à fait inattendu. L'exécution sur le simulateur NSNumber intValue était égale à 2.
L'exécution sur le périphérique avait une valeur aléatoire incorrecte. Comment est-ce possible? L'appareil est l'iPad 4 A1458. Également testé sur iPad 3 16GB. Le même problème s'est produit. Pouvez-vous vérifier ce problème?
Je ne peux pas reproduire votre problème. Il serait utile de voir à quoi ressemble votre classe "méthode" et comment vous l'initiez. – tuvok
écrivez votre méthode 'setTestNumber'. Problème devrait être là dans cette méthode – Lion
Que voulez-vous dire par "simulateur (9.3.1)"? Nous n'avons pas publié d'exécution de simulateur iOS 9.3.1. Je suppose que vous voulez dire avec iOS 9.3? –