如果我打電話給[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