gpt4 book ai didi

objective-c - 内存管理,我应该保留吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:50:48 24 4
gpt4 key购买 nike

如果我在我的头文件中声明一个 NSString 如下:

{
NSString *testString;
}
@property(nonatomic,retain) NSString *testString;

然后在我的.m文件中合成字符串,正确的初始化方法是什么?如果我不写: self.testString = [[NSString alloc] init];

那么它永远不会被初始化,但如果我这样做了,那么字符串是不是被保留了两次?或者我应该以其他方式初始化它,例如:

self.testString = [NSString stringWithFormat:@"%@, sampleText];

最佳答案

你是对的,前者会过度保留对象。

请改用第二种形式。
但是,如果您必须直接使用 ivar,则需要保留该对象:

testString = [[NSString stringWithFormat:@"%@, sampleText] retain];

关于objective-c - 内存管理,我应该保留吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034281/

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