Я хотел бы добавить мой случай к обсуждению.Я только что решил проблему, действительно похожую на эту.Он работал на симуляторе, но не на устройстве.Думал, что это проблема с памятью.Это не было.
Оказывается, я забыл return
о не пустом методе.Ожидалось, что он вернет значение, но я забыл сделать возврат вообще.Довольно серьезная ошибка, если вы спросите меня, но она без проблем работала в симуляторе (даже когда возврат фактически использовался для хранения переменной и выполнения каких-либо других операций с ней).
Каким-то образом симулятор работал каждый разс возвращением забыли.Бьет меня как, но я могу только дико догадаться, что это должно быть размещение последней переменной, которую я использую, в том же месте, на которое должен указывать возвращаемый результат, что приводит к ложному (ложному, но правильному) возвращению.на устройстве и в нормальных условиях он каждый раз падал.Сделал пошаговую отладку, чтобы понять, что я неправильно возвращал результат неудачного метода.
Надеюсь, это поможет всем, кто столкнулся с этой проблемой!