Почему выпуск UIAlertView просто лучше показать, тогда как это не метод блокировки? - PullRequest
4 голосов
/ 14 сентября 2010

Я изучал, как отображать модальное представление с помощью UIAlertView в течение нескольких часов, и я понял, что его показ не «блокирует» код (отображается модальное окно, и программа продолжает работать - мы должны использовать делегат, чтобы поймать выбранные действия в этом модальном окне). Затем я изучил несколько примеров и заметил, что каждый пример всегда выпускает модальное окно сразу после его показа. Как это может работать должным образом, так как представление будет выпущено немедленно, поскольку код не останавливается?

Вот пример (есть много других в Google):

  [[UIAlertView alloc] initWithTitle:@"Title" message:@"Message..." delegate:NULL cancelButtonTitle:@"OK" otherButtonTitles:NULL];  
  [alert showModal];  
  [alert release];

Спасибо за вашу помощь, Яблоко 92

Ответы [ 2 ]

8 голосов
/ 14 сентября 2010

Я не уверен, откуда вы получаете -showModal (обычный метод просто -show), но этот акт добавляет предупреждение в иерархию представлений. Когда представление добавляется как подпредставление другого представления (я полагаю, в данном случае это представление системного уровня, к которому добавляется), оно сохраняется автоматически, поэтому вам не нужно.

5 голосов
/ 14 сентября 2010

Метод alloc вернет вам экземпляр, у которого счетчик хранения равен 1. Метод showModal, вероятно, retains отображает предупреждение, поэтому оно остается на экране (и сохраняется) до нажатия кнопки. Это имеет смысл для меня, поскольку вы представляете его как модальное окно, поэтому у него нет «родителя», который отвечает за его освобождение.

...