StringByAppendingString

2021-05-12  本文已影响0人  NJKNJK

[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]; 内存不会有问题

上一篇 下一篇

猜你喜欢

热点阅读