Недавно я нашел интересную проблему, связанную с инициализацией NSNumber.Проблема с инициализацией NSNumber
Разница между тренажером (9.3.1) и устройством (9.3.1).
Предположим, что у нас есть int x = 2; Теперь мы инициализируем NSNumber и передаем его методу.
NSNumber *test = [NSNumber numberWithInt:self.x];
[self.method setTestNumber: test];
Эти две линии имели правильный результат как на симуляторе, так и на устройстве.
НО используя только эту линию
[self.method setTestNumber:[NSNumber numberWithInt:self.x]];
имел весьма неожиданный результат. Запуск его на тренажере NSNumber intValue был равен 2.
Запуск его на устройстве имел неправильное случайное значение. Как это возможно? Устройство - iPad 4 A1458. Также протестировано на iPad 3 16GB. Произошла та же проблема. Вы можете проверить эту проблему?
Я не могу воспроизвести вашу проблему. Было бы полезно посмотреть, как выглядит ваш класс «метод» и как вы его инициализируете. – tuvok
напишите свой метод setTestNumber. Проблема должна быть в этом методе – Lion
Что вы подразумеваете под "simulator (9.3.1)"? Мы не выпустили версию симулятора iOS 9.3.1. Я предполагаю, что вы имеете в виду iOS 9.3? –