• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to delay application quit?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to delay application quit?


  • Subject: Re: How to delay application quit?
  • From: Ken Thomases <email@hidden>
  • Date: Mon, 24 Mar 2008 15:12:12 -0500

On Mar 23, 2008, at 8:55 PM, Samvel wrote:

I have defined class (say, Download) that uses NSURLConnection to download something from internet. My application is Cocoa with UI. I want to call:

[Download cancel]

and wait for notification from this class once user quits application. Reasoning: my Download class should cancel connection and perform some operations before object can be released in program. Thus I can not simply deallocate Download instance in dealloc method.

So, the idea is: instead of calling [myDownload cancel] from dealloc method delay application quit until all steps are completed in Download. Thus call [myDownload cancel] and wait for Notification say DownloadCanceled. Only then deallocate object.

Is there any way to figure out when user initiated quit application? How to delay it?

I think there should be something pretty much similar to awakeFromNib but called at the very end upon application quit.

What Sherm told you is correct. However, I think this is largely unnecessary.


When an application quits, it does _not_ properly release all of your objects. Thus, their dealloc methods are generally not called. This is a deliberate optimization since there's no point in manually cleaning up the process memory. The kernel will completely eliminate the process address space (and do other cleanup) when the process exits. The TCP socket underlying the NSURLConnection will be closed, too.

Some things may need to be cleaned up, like a temp file holding the data for the in-progress download. For that, you can probably simply remove the file immediately at the point of applicationWillTerminate:. There's no need to delay the quitting in that case.

Cheers,
Ken
_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >How to delay application quit? (From: Samvel <email@hidden>)

  • Prev by Date: Re: Cocoa binding always produces zero for bound value
  • Next by Date: Display artifacts in large (1600 row) table view
  • Previous by thread: Re: How to delay application quit?
  • Next by thread: Re: How to delay application quit?
  • Index(es):
    • Date
    • Thread