首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[string UTF8String]的正确内存管理

[string UTF8String]的正确内存管理
EN

Stack Overflow用户
提问于 2010-04-30 04:29:49
回答 4查看 2.1K关注 0票数 4

我是objective-c的新手,我不确定这段代码的正确内存管理是什么。

代码语言:javascript
复制
const unsigned char * data =(const unsigned char *) [string UTF8String];

当我在数据上调用free时,我得到一个错误。打完电话后我需要清理一下吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-30 04:32:41

不是的。"UTF8String“不包含单词alloccopyretaincreate。因此,您不需要对该内存负责。

请注意,如果您希望数据在string发布后仍然存在,则应该复制它;根据约定,您不对该内存负责,但也不能保证它将持续到提供它的对象的作用域之外。

票数 10
EN

Stack Overflow用户

发布于 2010-04-30 04:34:03

你不需要free它。

在Cocoa中,如果一个方法不包含单词allocinitcopy,则您不拥有从该方法返回的对象。

-UTF8String实际上指向您正在调用它的NSString对象的cstring表示形式。当对象的状态改变时,UTF8String也会改变。

票数 2
EN

Stack Overflow用户

发布于 2010-04-30 04:34:29

正如documentation中所述,它会以自动释放对象的方式自动释放。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2740575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档