iPhone Development - Lessons in memory management

前端 未结 5 1771
既然无缘
既然无缘 2021-02-04 15:47

I need lessons in memory management. I have an application that uses multiple views (around 10), some of these are attached to tab controller. Problem is that I\'m using images

5条回答
  •  孤街浪徒
    2021-02-04 16:31

    Now that we have the "just say no" answers to autorelease out of the way, I thought I'd add a tip on how to use autorelease more effectively. For better or worse not everyone's going to completely avoid autorelease-- if for no other reason than because Apple provides so many convenience methods that hand you autoreleased objects.

    You can't just tell the autorelease pool to free up any objects that you're not using. There's no garbage collection, and how else is it going to know?

    What you CAN do is to create a local autorelease pool and then release that when you no longer need the local autoreleased objects. If you have a block where you're creating autoreleased objects, you'll ensure they get freed by creating a local autorelease pool at the start of the block (just alloc/init it, no magic required) and then releasing the pool at the end of the block. And voila, and objects in the pool are also released.

    Autorelease pools nest, so keep that in mind if you do this. If you release an autorelease pool, make sure it's the most-recently-allocated pool and not some other one.

提交回复
热议问题