2010-07-21 72 views
0

我有這個如何知道什麼時候釋放字符串iphone

NSXMLParser *xmlParserf = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
    // NSLog(@"URL%@",urlf); 
    //Initialize the delegate. 

    XMLParser *parserf = [[XMLParser alloc] initXMLParser]; 
    [xmlParserf setDelegate:parserf]; 

    //Start parsing the XML file. 

    BOOL successs = [xmlParserf parse]; 

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

    NSLog(@" this xml is %d",[xmlParserf retainCount]);// getting error 
    NSLog(@" this paaat is %d",[parserf retainCount]);// getting error 

    if(successs) 
    { 
     NSLog(@"ZONE IS PARSED"); 
     [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 
    } 
    else 
    { 
     NSLog(@"NOT PARSED!!!"); 
    } 

    //[xmlParserf release]; not working 
      //[parserf release]; 

現在我不知道什麼時候才能釋放這些在某些線程中運行這些對象

回答

1

每次你alloc(或copy),你必須是releaseautorelease

在這種情況下:

NSXMLParser *xmlParserf = [[[NSXMLParser alloc] initWithContentsOfURL:url] autorelease]; 

XMLParser *parserf = [[[XMLParser alloc] initXMLParser] autorelease]; 

這意味着你保持它在內存中至少直到當前函數的末尾。如果其他對象掛在它上面(即retain it),那麼這些對象會留在內存中,直到它們是released(通過那些其他對象)。

+0

謝謝先生:-) – ram 2010-07-21 01:45:50

相關問題