gpt4 book ai didi

iphone - NSString *string = @"someString"vs NSString *string = [[NSString alloc] initWithFormat @"%@", string]

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:51 27 4
gpt4 key购买 nike

如果我有方法

- (void) myMethod:(NSString *)string {
[Object anothermethodWithString:string];
}

我打电话

[Object myMethod:@"this is a string with no alloc statement"]

我需要做类似的事情吗

- (void) myMethod:(NSString *)string {
NSString *string2 = [[NSString alloc] initWithFormat:@"%@", string];
[Object anothermethodWithString:string2];
[string2 release];
}

而不是我以前使用 myMethod 的方式?我有一些行为不端的代码,这似乎是由于在调用另一个方法中的第二个方法时自动释放字符串引起的(如示例中所示)。我用 myMethod 解决所有问题的第二种方法。

那么“非分配”字符串是自动释放的字符串吗?我问这个问题是为了跟进另一个问题(这完全不相关,也是我创建这篇文章的原因),一些消息来源说我不需要重新分配字符串。我很困惑,因为我的代码行为告诉我并非如此。

最佳答案

Dave 做对了。您只需要担心在您newallocretain 的对象上调用release复制

上述规则非常有效,但如果您好奇并想深入了解更多细节,我建议您阅读 Memory management Programming Guide来自 Apple 的文档。它是免费的,从基本概念到许多细节。

关于iphone - NSString *string = @"someString"vs NSString *string = [[NSString alloc] initWithFormat @"%@", string],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270071/

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