2013-11-03 4 views
1

У меня есть приложение для iPhone, похоже, проблема с утечкой памяти. Это игра-головоломка, после нескольких головоломок приложение падает на устройства.ios puzzle app падает после нескольких раундов

Теперь я пытаюсь использовать инструменты xcode для определения того, что происходит. Первый раз использовать Инструменты.

Я заметил барьер утечки на участке «Утечки», справа от времени загрузки вида: What are these memory leaking objects, detected by xCode Instruments? . Однако эти просочившиеся объекты небольшие, поэтому я думаю, что у моего приложения есть другие проблемы.

Когда мое приложение продолжает работать, как правило, для 10+ раундов на iPad 2, он затем сбой. Я еще не очень разбираюсь в инструментах, поэтому я смотрю «All Chap Allocations». В начале головоломки первого раунда столбец «# Общий» составляет ~ 70 тыс., Он медленно растет между раундами головоломок. Когда приходит новая головоломка, она идет до ~ 90k, затем круглая кружка достигает ~ 200k, а затем падает.

Перед сбоями в консоли регистрации я вижу предупреждение о памяти и «СОЕДИНЕНИЕ ПРЕРЫВАНИЯ».

Я следил за несколькими вещами после поиска утечки памяти, такого набора NSArray/NSDictionary или изменчивых на нуль, насколько это возможно (хотя не все из них, так как некоторые идут между головоломками). Я также изменил UIImage imageNamed на [UIIMage alloc] initWithContentOfFile.

Что еще я должен посмотреть/проверить, чтобы узнать, что вызывает проблему памяти? ТИА!

EDIT: Мне жаль, что я не могу опубликовать некоторые коды, которые могут быть подозреваемыми, но я действительно не знаю, какую часть выставлять. Я должен был проверить через Инструменты в ходе разработки курса, чтобы я знал, что вызвало проблему.

Относительно других контроллеров вида. У меня есть другие (меню, настройки, скорость магазина приложений и т. Д.), И я сгенерировал их все через код. В моем приложении нет файла раскадровки или файла. Когда я тестирую сбои, я просто нажимаю кнопку «Следующая головоломка», поэтому все остальные представления вообще не отображаются. Таким образом, перед сбоем, единственным показанным изображением является основной вид, с несколькими кнопками, несколькими подзонами, анимированными изображениями (но только первая головоломка как введение). Если это помогает, вот мое приложение: http://itunes.apple.com/us/app/wordsect/id599455449?ls=1&mt=8

+2

Трудно вам посоветовать, не зная больше о вашем приложении. У вас есть несколько контроллеров просмотра? Как вы двигаетесь между ними? Когда вы начинаете новый раунд, вы начинаете «свежие» с новыми контроллерами? Старые освобождены? – rdelmar

+0

Также выставляю некоторые коды, у которых есть проблемы, которые могут помочь брату. –

+0

@rdelmar, я добавил несколько строк в своем оригинальном посте, чтобы другие могли его увидеть. Благодарю. –

ответ

0

Если вы пытаетесь отлаживать приложения с инструментами - включить режим обнаружения зомби:

В

  1. Xcode: Product-> схемное> Изменить Схема
  2. Выберите Debug схема
  3. Выберите Доводы панель вкладок на описании схемы
  4. В переменных Environments добавить и проверки Переменная NSZombieEnabled

Затем, когда вы запускаете приложение под управлением «Инструменты», вы получите имя экземпляра, когда ваше приложение разбилось.

Смежные вопросы