作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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];
最佳答案
老问题,但仍然是实际问题:
正如@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/
我是一名优秀的程序员,十分优秀!