gpt4 book ai didi

ios - ARC , stringWithUTF8String 内存稳步增加 “Live Bytes”

转载 作者:行者123 更新时间:2023-11-29 13:20:41 25 4
gpt4 key购买 nike

我正在使用 ARC,每次我调用下面的代码。我发现“Live Bytes”每次都会增加一点。这里肯定有内存泄漏。

char* example = (char *)sqlite3_column_text(compiledStatement, 1);                                

label.text = [NSString stringWithUTF8String:example];

但是如果我按照下面的方式做,内存将永远保持稳定在一个字节数上。但是 label.text 内容不是我想要的确切词,它像“&#(&(*@#)#@$”一样损坏。

char* example = (char *)sqlite3_column_text(compiledStatement, 1);                                

label.text = [NSString stringWithFormat:@"%s",example];

enter image description here

enter image description here

最佳答案

老问题,但仍然是实际问题:

正如@jlegakis 已经指出的那样,这可能是一个“自动释放问题”。

我只是想提出一种不同的方法来摆脱 类工厂方法 中自动释放的返回对象,例如 [NSFoo fooWith...]:

相反,如果你使用模式

NSFoo* foo = [[NSFoo alloc] initWith...]

创建的对象不是自动释放的。所以,如果你写:

char* example = (char *)sqlite3_column_text(compiledStatement, 1);
label.text = [[NSString alloc] initWithUTF8String:example];

“自动释放问题”应该消失了。

关于ios - ARC , stringWithUTF8String 内存稳步增加 “Live Bytes”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423414/

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