views:

446

answers:

1

Is the following true?

When the app is about to quit, it's not necessary to clean up the memory by calling release on all your retained objects, because the iPhone OS will reclaim the memory it allocated for your app when you launched it. This is faster and safer than rely on the apps to correctly clean up after themselves. You can verify this by putting an NSLog call (or a debugger breakpoint) in the dealloc method of your application delegate and seeing it's never called.

So, cleaning things up when the app is about to quit is useless. Moreover, you have very limited time before the OS wipes your app out, so don't waste it on cleaning things. Focus on saving your game and any other relevant stuff.

Source (cocos2d-iphone.org)

+4  A: 

Yes. Quoting the documentation:

Important: When an application terminates, objects may not be sent a dealloc message since the process’s memory is automatically cleared on exit—it is more efficient simply to allow the operating system to clean up resources than to invoke all the memory management methods. This has implications for how you implement a dealloc method—see “Resource Management.”

Ken