Memory Leak In line of code

前端 未结 3 802
误落风尘
误落风尘 2021-01-22 12:17

My app is working fine, but when I run instrument for checking for leaks, it shows me a leak at this line of code, in purple with a 100.0% mark:

xmlParser = [[NS         


        
相关标签:
3条回答
  • 2021-01-22 12:49

    Do you ever call

    [xmlParser release];
    

    ?

    If not, you should release it when you no longer need it. Perhaps in the dealloc method of the same class in which that line appears.

    0 讨论(0)
  • 2021-01-22 13:00

    You never release FinalString (at least not in the code you posted)

    this is held in the URL, which is held by the parser :)


    Also, have you considered what would happen if this function is called twice?

    Each time you say

    xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
    

    you would leak the previous xmlParser ;)

    If you are allocating to an instance variable, you have to remember to release the previous object i.e.

    [xmlParser release];
    xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
    
    0 讨论(0)
  • 2021-01-22 13:03

    You need to make NewsParser parser an instance variable and release it in the dealloc. Above, you init it, but you don't release it. Of course, you can't because it's a delegate of xmlParser. So, to make sure the object is retained, then properly released, it must be an ivar.

    0 讨论(0)
提交回复
热议问题