Iphone 可变拷贝内存泄漏?

Iphone 可变拷贝内存泄漏?,iphone,Iphone,这条线路有内存泄漏吗?请解释是或否 Person.h ------- NSMutableString *address; Person.m -------- @synthesize address; -(id) init { self = [super init]; address = [[NSMutableString alloc] init]; return self; } -(void) funcA() { [address appendForma

这条线路有内存泄漏吗?请解释是或否

Person.h
-------
NSMutableString *address;


Person.m
--------
@synthesize address;

-(id) init
{
    self = [super init];
    address = [[NSMutableString alloc] init];

    return self;
}

-(void) funcA()
{
    [address appendFormat:@"located|at|%@", @"Singapore"];
     address = [[address stringByReplacingOccurrencesOfString:@"|" withString:@" "] mutableCopy];
}

-(void) dealloc
{
    [address release];
    [super release]
}
=地址是NSMutableString,也是一个属性。我只使用dealloc方法释放它。

您在这里泄漏:

[address appendFormat:@"located|at|%@", @"Singapore"];
address = [[address stringByReplacingOccurrencesOfString:@"|" withString:@" "] mutableCopy];
您正在第二行用新的
NSMutableString
替换地址

只需使用,就不必替换字符串

[address appendFormat:@"located|at|%@", @"Singapore"];
[address replaceOccurrencesOfString:@"|" withString:@" " options:NSCaseInsensitiveSearch range:NSMakeRange(0, address.length -1)];

谢谢你的快速回复。我想我的帖子不完整。请再看一看。我没有使用ARC。感谢您再次查看。但它不起作用。第二行后面的“|”不替换为“”。有什么想法吗?我找到了一个解决方法:NSString*temp=[[address StringByReplacingOfString:@“|”with String:@”“];[address setString:temp];这一个有效