gpt4 book ai didi

Objective-C/ cocoa : Do I have a memory leak here?

转载 作者:行者123 更新时间:2023-12-03 16:52:06 26 4
gpt4 key购买 nike

我有一个如下所示的调用方法:

-(void)callingMethod
{
NSMutableString *myStr = [[[NSMutableString alloc] initWithCapacity:0] autorelease];
myStr = [self calledMethod];
}

我调用的方法:

-(NSMutableString*)calledMethod
{
NSMutableString *newStr = [[NSMutableString alloc] initWithCapacity:0];
// do some stuff with newStr
return [newStr autorelease];
}

我是否在此处泄漏内存?我觉得我在这里分配了不必要的金额。

最佳答案

不,您没有泄漏内存,但您在此处分配了不必要的内存的直觉是正确的。

至少,您应该考虑将 callingMethod 重写为:

- (void)callingMethod
{
NSMutableString *myStr = [self calledMethod];
}

您还可以将叫法整理为:

- (NSMutableString*)calledMethod
{
return [NSMutableString stringWithCapacity:0]; // why 0 capacity?
}

关于Objective-C/ cocoa : Do I have a memory leak here?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722957/

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