освободить память в моем ipad - PullRequest
0 голосов
/ 13 сентября 2011

Привет всем, друзья в ipad, пожалуйста, кто скажет мне, почему я не могу выпустить json_var?

NSData* myMutableData = [NSURLConnection sendSynchronousRequest:request returningResponse:&WSresponse error:&WSerror];
NSLog(@"slt%d",[myMutableData length]);
json_string=nil;
json_var = [[NSString alloc] initWithData:myMutableData encoding:NSUTF8StringEncoding ];

json_var = [json_var stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"];
json_var = [json_var stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];
json_var = [json_var stringByReplacingOccurrencesOfString:@"<?xml.......  string\">"  withString:@""];
json_var = [json_var stringByReplacingOccurrencesOfString:@"</return></ns1:getDatasResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>" withString:@""];
    json_var = [json_var stringByReplacingOccurrencesOfString:@"<?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>" withString:@""];

json_var = [json_var stringByReplacingOccurrencesOfString:@"<?xml version=&quot;1.0&quot; encoding=&quot;windows-1252&quot;?>" withString:@"<?xml version=\"1.0\" encoding=\"windows-1252\"?>"];



    NSString *data13=[[NSString alloc] initWithString:json_var]; 
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
                    NSString *documentsDirectory = [paths objectAtIndex:0];
                    IDComp = [IDComp stringByReplacingOccurrencesOfString:@"/" withString:@":"];        
                    NSString *test1 = [IDComp stringByAppendingString:@".xml"];
                    NSString *test2 = [documentsDirectory stringByAppendingString:@"/"];
                    NSString *test3 = [test2 stringByAppendingString:test1];
                    NSString *file2 = [NSString stringWithFormat:test3];
                    [data13 writeToFile:file2 atomically:YES];
                    [data13 release];
                    [json_var release];

1 Ответ

0 голосов
/ 13 сентября 2011

Вам не нужно освобождать строку json_var, потому что вы присваиваете ей автоматически выпущенный объект (метод stringByReplacingOccurrencesOfString: возвращает автоматически освобожденный NSString).

Если вы не хотите утечек памяти, вам следуетсделать следующее:

  1. удалить строку [json_var release]
  2. заменить

    json_var = [[NSString alloc] initWithData:myMutableData encoding:NSUTF8StringEncoding ];
    

    на

    json_var = [[[NSString alloc] initWithData:myMutableData encoding:NSUTF8StringEncoding ]autorelease];
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...