gpt4 book ai didi

iphone - 我的 Objective C 代码中只需要一个版本吗?

转载 作者:行者123 更新时间:2023-12-03 16:54:50 24 4
gpt4 key购买 nike

由于某种原因,我无法使用 arc,所以在下面的代码中..

Foo.h

@interface Foo : NSObject

@property (nonatomic, copy) NSString * string;

@end

Foo.m

@implementation Foo

@synthesize string=_string;

- (void) bar {
self.string = [NSString stringWithFormat:@"test1"];
self.string = [NSString stringWithFormat:@"test2"];
}

-(void) dealloc
{
[_string release];

[super dealloc];
}
@end

bar 方法可能并不总是被调用,或者可以多次调用。

dealloc中只需要一个release就可以了吗?

最佳答案

是的,由于您正在使用属性,因此 setter 方法将负责释放内存分配。它将按如下方式分配内存:

-(void)setValue:(NSString *)strValue
{
if(string)
{
[string release];
string = nil;
}
string = [strValue copy];
}

关于iphone - 我的 Objective C 代码中只需要一个版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13748011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com