Memory leak warning on release but not on autorelease?

After return statement function is returned and nothing further is executed. So release after return will not execute. So you will leak memory.

And you can not release before the return as the caller will use that object. So you really can't release that before return. So you have two ways to handle this situation.1st option is to make the returned object autorelease.

Another option is to make the function name in such a way that the caller know that it owns the returned object and must release it Check Returning Objects from Methods from Memory Management Programming Guide for the details explanation of this case.

After return statement function is returned and nothing further is executed. So release after return will not execute. So you will leak memory.

And you can not release before the return as the caller will use that object. So you really can't release that before return. So you have two ways to handle this situation.1st option is to make the returned object autorelease.

Another option is to make the function name in such a way that the caller know that it owns the returned object and must release it. Check Returning Objects from Methods from Memory Management Programming Guide for the details explanation of this case.

Thank you for your clarification. Now it makes perfect sense. I haven't been programing in C for years now that I forgot that return is the last statement in the function.In PHP or Java I'll never have anything after return statement because of the nature of the language.

Thank you so much – luigi7up Mar 8 at 8:26.

Apple don't say "manually release all the objects you create" -- they just say "release eventually all the objects you create". That can be done by a manual release or by an autorelease. An autorelease is basically just a manual release that occurs at some later point (at the point NSAutoreleasePool drain or NSAutoreleasePool release gets called).

If you want one of your methods to return an object that is owned by the caller, you have to use autorelease because if you call release before your 'return' and the retain count goes does to zero (which it usually will if you've just made the object) then the object will immediately be dealloc'd and then unusable. The caller of the method finds themselves with a pointer to some garbage non-object.

Btw, I notice you're not using the cell re-use stuff. Just be warned that you can get poor performance in your table if you don't use that. – occulus Mar 7 at 9:18.

When you return cell you do not own the object after that point and hence you cannot release it. When the return statement is executed the functions returns to the point from where it was called. So the statements after the return is not executed.So when you release the cell after the return its not executed which means the cell is not released.

Hence it causes a memory warning.

Pls see if this helps you iphonedevsdk. Com/forum/iphone-sdk-development/… – 7KV7 Mar 7 at 9:07.

Add a UitableView class in xcode and it will automatically add delegates correctly for the reuse of tableviewcells.

So release after return will not execute. So you will leak memory. And you can not release before the return as the caller will use that object.

So you really can't release that before return. So you have two ways to handle this situation. 1st option is to make the returned object autorelease.

Another option is to make the function name in such a way that the caller know that it owns the returned object and must release it. Check Returning Objects from Methods from Memory Management Programming Guide for the details explanation of this case.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions