如果我打电话给[NSString cStringUsingEncoding:]
,我应该使用free()
吗?我应该释放由cStringUsingEncoding返回的字符串吗?
2
A
回答
4
没有,和文档是这么说的很清楚:
返回的C字符串是保证有效期至任何接收器被释放,或直到当前autorelease池被清空,以先到为准。如果需要在此时间之后存储C字符串,则应复制C字符串或使用
getCString:maxLength:encoding:
。
0
我认为cStringUsingEncoding为已转换的字符串分配内存以指定编码因此,如果您没有使用自动释放池,则永远不会释放此内存。
相关问题
- 1. 我应该在Linux中释放由getpwuid()返回的指针吗?
- 2. 我应该保存由NSLocalizedString()返回的字符串吗?
- 3. 我应该释放从GCHandle :: FromIntPtr返回的句柄吗?
- 4. 我应该释放self.view吗?
- 5. 我应该释放NSImage吗?
- 6. 我应该从CGImageSourceCopyPropertiesAtIndex调用中释放返回对象吗?
- 7. 由NSUserDefaults返回的对象应该被释放或不
- 8. 的NSString cStringUsingEncoding返回值
- 9. 为什么我不应该释放这个字符串?
- 10. 由X509_NAME_oneline返回的自由字符串
- 11. 我应该将JWT放在JSON上作为base64字符串吗?
- 12. 我应该使用字符串作为TypeScript中返回值的类型吗?
- 13. 在getter方法中,我应该克隆要返回的字符串吗?
- 14. 我应该返回一个python字符串的MIME类型
- 15. 我应该释放的dealloc
- 16. 释放字符指针返回错误
- 17. 我应该在返回表单之前自动释放 - (NSString *)描述吗?
- 18. 我可以/应该释放指针返回strtok
- 19. 我应该在dealloc中放置我的活动指示符释放语句吗?
- 20. 我应该关闭由Assembly.GetManifestResourceStream返回的流吗?
- 21. 我的帮助器方法应该返回一个字符还是字符串?
- 22. 我应该明确地施放malloc()的返回值吗?
- 23. 访问由fgetcsv返回的字符串
- 24. 字符串的释放
- 25. 由API返回的Unicode字符串不等于我的字典
- 26. 我应该在我的dealloc函数中释放IBOultet吗?
- 27. 我应该释放我复制到剪贴板的内存吗?
- 28. ctime()返回一个字符串,为什么我们不需要释放()这个字符串的内存?
- 29. 我需要释放我修改并返回的JNI数组吗?
- 30. 的JavaScript的typeof应该是数量,但返回的字符串
“直到接收器被释放”是什么意思?我不确定我在这里理解术语“接收器”。它是否谈论当前的实例? – rid
receiver是消息发送到的对象 - 所以在这种情况下MSString实例 – Mark