сбой приложения из-за освобождения представления

#iphone #ipad #uiview

#iPhone #iPad #uiview

Вопрос:

привет, друзья, я разрабатываю приложение, в котором много шаблонов. проведите пальцем влево, чтобы перейти к следующему шаблону, а вправо — к предыдущему шаблону.У меня есть метод, который вызывается, как только я провожу пальцем в любом направлении, который очищает все представления, связанные с предыдущим шаблоном, и некоторые другие функции.

у меня есть представление «bodyBgView», которое добавляется для всех шаблонов, кроме одного templates (шаблон wordSearch).то же самое происходит каждый раз, когда я провожу пальцем (в методе, который вызывается при выполнении идентификатора прокрутки). когда я провожу пальцем после посещения шаблона (wordSearch template), происходит сбой приложения. когда я разместил debugger, я мог видеть, что отладка завершается в заявлении о выпуске, т. е. [bodyBgView release];

метод является обязательным для инструкции по выпуску, потому что все остальные шаблоны зависят от метода.как я могу преодолеть ситуацию, чтобы все шаблоны работали нормально.

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

пожалуйста, помогите мне
Tnx заранее

Комментарии:

1. «освобождение представления, которое уже освобождено, не должно прерывать работу моего приложения»…. Что ж, efrank, для этого тебе придется написать новый язык программирования..

2. я надеюсь, что мой случай является общим для многих, и я верю, что было бы свойство или решение для его преодоления. Это может быть даже глупо после того, как вы это знаете. Я надеюсь, что в программировании нет ничего невозможного

3. У меня это плохо получается, и я тоже этого не пробовал.. Но прочитайте об обработке исключений в ios sdk и посмотрите, есть ли какой-либо метод для этого..

4. Но все же я думаю, вы можете найти некоторую логику, которая проверяет, освобождена ли вещь, прежде чем вызывать release для нее..

Ответ №1:

я решил свою проблему, присвоив nil после выпуска view.

 [bodyBgView release];
bodyBgView=nil;
  

тогда мое приложение не подвергалось сжатию. проверка при нулевом значении возвращает nil, таким образом, приложение не будет удалено.

надеюсь, это поможет другим, кто сталкивается с такой же проблемой.

Спасибо