[string1stringByAppendingString:str2];
会生成一个autorelease NSString对象,
所以把这个在付值给string1时,string1指向一个新的autorelease对象,如果string1原来也是autorelease的内存不会有问题,
如果string1原来是alloc, copy生成的,就要先做个autorelease,或者给中间变量。如下:
NSString*string1=[[NSString alloc] init];
string1=[[string1autorelease] stringByAppendingString:str2]; 内存不会有问题。
NSString*string1=[[NSString alloc] init];
string1=[string1 stringByAppendingString:str2];string1未释放,泄漏。
NSString*string1=[NSString string];
string1=[string1stringByAppendingString:str2]; 内存不会有问题
网友评论