user255607
user255607

Reputation: 1869

Why releasing an UIAlertView just afer showing it whereas it is not a blocking method?

I have been studying how to display a modal view with UIAlertView for a few hours and I understood that showing it does not "block" the code (the modal window is displayed and the program keeps running - we must use delegate to catch the selected actions on this modal window). Then I studied several examples and noticed that every example always release the modal window just after showing it. How can this work properly since the view will be released instantly as the code does not stop ?

Here is the example (there are many others on Google):

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

Thanks for your help, Apple 92

Upvotes: 4

Views: 2825

Answers (2)

Ben Gottlieb
Ben Gottlieb

Reputation: 85532

I'm not sure where you're getting -showModal from (the usual method is just -show), but that act adds the alert to the view hierarchy. When a view is added as a subview of another view (I believe in this case it's a system-level view that is being added to) it's retained automatically, so you don't have to.

Upvotes: 8

pgb
pgb

Reputation: 25001

The alloc method will return you an instance that has a retain count of 1. The showModal method probably retains the alert view so it remains on screen (and retained) until a button is tapped. It makes sense to me, since you are presenting it as a modal window, so it doesn't have a "parent", that is responsible of releasing it.

Upvotes: 5

Related Questions