Подтвердить что ты не робот

(Только для XCode 7 + iOS 9 + iPhone 4s/iPhone5): "malloc: *** mach_vm_map (размер = 1048576) не удалось (код ошибки = 3)"

Я знаю, что проблема связана с распределением памяти, но я получаю ее только в iOS 9, XCode 7. В XCode 6.4, iOS 8.4, он работает просто отлично, без каких-либо проблем. В iOS 9, XCode 7, он просто очень часто сбой приводит к этой ошибке.

malloc: *** mach_vm_map(size=1048576) failed (error code=3) *** error: can't allocate region securely *** set a breakpoint in malloc_error_break to debug

Любые предложения? Я работаю над проблемами памяти, но мне интересно, было ли слишком много проблем с памятью, тогда почему это работало в iOS 8.4, а не в iOS 9?

Кроме того, я получаю весь мой пользовательский интерфейс! Подобно тому, как на панели навигации нет заголовка, пользовательская вкладка (RDVTabBar) не отображается, однако есть другой контроллер просмотра (он реагирует на события касания, вы можете нажать эту область, и кнопка, расположенная в этой области, действует!).

P.S. Я никогда не получаю предупреждение о памяти, ни метод applicationWillTerminate: не вызывается!

Обновление: я обнаружил, что эта проблема возникает только в iPhone 5 и 4s! (Не-64-битные устройства!)

Обновление 2: Когда происходит сбой, я пытаюсь напечатать один из объектов и распечатать его, я снова получаю ту же ошибку в режиме отладки: malloc: *** mach_vm_map(size=1048576) failed (error code=3) *** error: can't allocate region securely *** set a breakpoint in malloc_error_break to debug.

------------------ Обновление ------------------

Ну, я нашел что-то здесь: я проверил свое приложение в "Инструменты" и обнаружил, что он занимает около 200 мб памяти в iOS 8.4, и, на удивление, iOS 9. * занимает 1,5 ГБ памяти!!! Этого я не понимаю! Одно приложение занимает 200 мб памяти в iOS 8.4, и одно и то же приложение занимает более 1,5 ГБ памяти на iOS 9! Не совсем понятно! Любая идея?

4b9b3361

Ответ 1

Ну, я думаю, я, наконец, нашел проблему: ее определенно проблема памяти, но мне пришлось искать где. Я обнаружил, что использую две сторонние метки: CXAHyperlinkLabel и STTweetLabel. Когда я удалил их, мое приложение просто отлично работает! Проблема решена, но все же я смущен, почему она действительно работает (и все еще работает) отлично в iOS 8.4 и потребляет более 1,5 ГБ памяти в iOS 9.0 и выше! Если у него есть некоторые проблемы с памятью (я нашел некоторые и исправил уже, все еще), почему он действительно работал с iOS 8. *. Итак, мой совет любому человеку, у которого возникают такие проблемы, я рекомендую использовать UITextView для ссылок (я сделал это и его приятную замену).

Ответ 2

Я только что испытал точный вопрос, как вы (xcode7, на iPad 2, iOS 8.4).

<Error>: myApp(524,0x3cfda9dc) malloc: *** mach_vm_map(size=4060311552) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

Итак, я решил запустить режим отладки, а приложение вылетает в самом неожиданном месте:

        [self.delegate discountPopupDoneClickWithDiscount:self.discount
                                                     type:self.discountType
                                         federalTaxEnable:self.federalTaxEnable
                                               federalTax:self.federalTax
                                                customTax:self.customTax];

Затем я попытался выяснить, что произошло здесь, введите po self.discount, получится self.discount (это свойство с типом NSDecimalNumber) возвращает очень неважное значение, например <å: 0xba123adr>. Странно, правда? Кроме того, когда я пытаюсь po [self discount], он дает NSDecimalNumber [_NSKeyedCoderOldStyleArray initialize]: Unrecognized selector send to instance. Довольно неудобно, что делать здесь.

Решение:

Я обновляю свойство скидки:

@property (nonatomic, assign) NSDecimalNumber *discount;

:

@property (nonatomic, strong) NSDecimalNumber *discount;

И потом все отлично. Конечно, это не точный ответ/решение вашего вопроса, но это может помочь/дать вам понять, что делать, как-то.

Ответ 3

Так странно. У меня была очень похожая проблема, когда приложение постоянно увеличивало потребление памяти, пока, в конце концов, она не сработает, но ТОЛЬКО на iOS7 и iOS8. Конечно, никаких проблем с iOS9 и выше.

Выяснилось, что причиной была простая настройка [UILabel setText:text] для A LOT collectionViewCells. WTF? Они были слабы, неатомичны. Почему?

Запустите приложение в Инструменты: Распределение. Прежде чем инструменты со временем упали, мне удалось выделить потребление памяти __NSStringDrawingEngine, +[NSParagraphStyle _defaultWritingDirection] [UIFont fontWithName] или что-то в этом роде.

В любом случае, оказывается, проблема в том, что я использовал типы текстовых стилей (например, Title 1, Title 2, Body, Caption и т.д.). Казалось логичным использовать в то время. Но я переключил их на системные шрифты, и больше не проблема с памятью и больше не замерзаю.

Так странно.

Ответ 4

Вы использовали функцию NSZombieObject, она не выпустит объект зомби и может вызвать этот крах. Надеемся, что это поможет вам.