Let's say I'm developing a game. I run the following class method thousands of times:
NSBundle *bundle=[NSBundle mainBundle];
I do not create an autorelease pool and release the objects that call the above class method all the time. I create an object, it calls the above class method, I release it, and on, and on, thousands of times.
3 questions:
- Is memory leaked?
- If I ran:
NSAutoReleasePool *pool=[[NSAutoReleasePool alloc] init]; [pool drain];
would it then effectively release all those NSBundles created in the class method?
- if I wrote:
pool=nil;
instead of writing:
[pool drain];
Would the same effect be achieved? Is this good practice?
The three questions are correlated and I will boost the one that clarifies them :)