我应该释放cStringUsingEncoding返回的字符串吗?

时间:2012-06-13 10:57:59

标签: objective-c memory-management

如果我正在拨打[NSString cStringUsingEncoding:],我应该在free()使用它之后使用它吗?

2 个答案:

答案 0 :(得分:4)

不,文档说得非常清楚:

  

保证返回的C字符串仅在释放接收者之前有效,或者直到当前自动释放池清空为止,以先发生者为准。如果需要在此时间之后存储C字符串,则应复制C字符串或使用getCString:maxLength:encoding:

答案 1 :(得分:0)

我认为cStringUsingEncoding正在为转换后的字符串分配内存到指定的编码所以如果你没有使用自动释放池,那么永远不会释放这个内存。