У меня есть переменная экземпляра * TangramLevel (: UIView) currentLevel; в моем классе viewController, и у меня есть экземпляр, выделенный при запуске (это retainCount 1). Я прикрепил его к представлению [self.view addSubview: currentLevel]; (retainCount 2).
Когда уровень заканчивается, он уведомляет контроллер, поэтому контроллер удаляет его из представления [currentLevel removeFromSuperview]; (retainCount 1) и освобождает выделенный экземпляр - [currentLevel release]; -, чтобы освободить его (retainCount 0 = invote dealloc).
Затем на следующей строке контроллер хочет выделить / добавить представление нового уровня с данными другого уровня, но приложение вылетает (EXEC BAD ACCESS).
Если я не освобождаю currentLevel после removeFromSuperview, приложение работает, но в памяти остается неиспользованный экземпляр уровня, что также является проблемой (сама по себе основная проблема).
Есть ли какая-либо ошибка в методе, который я написал выше? Или ошибка в другом месте, может быть, в классе уровня? Я выделил некоторый UIImageView на уровне, но я освобождаю каждый выделенный объект в методе levelloc уровней. Есть идеи?