下面的代碼崩潰。基本上我正在訪問一個非常大的字符串(xml -contains圖像數據)保存爲文件...修改它並將其保存在一個新的名稱。 ..分析時,我沒有看到任何泄漏與此代碼...但重複此過程20-25次後...該應用程序崩潰在iPhone 3gs內存警告級別三,它殺死了整個應用程序也運行... ...我找不到哪裏這個程序是泄漏到導致內存警告任何地方....任何建議保存一個大的nsstring文件多次崩潰應用程序
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [paths objectAtIndex:0];
NSString *filename = [NSString stringWithFormat:@"%@.yyy",fileToDuplicate];
NSString *initPath = [documents stringByAppendingPathComponent:filename];
NSString *final = [NSString stringWithFormat:@"%@.yyy",[[alertView textFieldAtIndex:0] text]];
NSString *finalPath = [documents stringByAppendingPathComponent:final];
NSString *newName=[[[alertView textFieldAtIndex:0] text] copy];
NSError *error;
NSString *xml = [[NSString alloc] initWithContentsOfFile:initPath encoding:NSASCIIStringEncoding error:&error] ;
NSString *xml_1=[xml stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"<file_name><name>%@.yyy</name></file_name>",fileToDuplicate] withString:[NSString stringWithFormat:@"<file_name><name>%@.yyy</name></file_name>",newName]];
NSString *xml_2=[xml_1 stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"<property_name>%@</property_name>",fileToDuplicate] withString:[NSString stringWithFormat:@"<property_name>%@</property_name>",newName]];
[xml_2 writeToFile:finalPath atomically:YES encoding:NSASCIIStringEncoding error:&error];
xml=nil;
[xml release];
xml_1=nil;
xml_2=nil;
[self.mTableView reloadData];
[email protected]"";
[newName release];
[pool drain];
return ;
也許你應該只打開ARC,刪除所有'釋放'調用,並檢查它是否仍然崩潰。 – kennytm 2012-07-21 21:14:20