2

如果我打电话[NSString cStringUsingEncoding:],我应该free()在我用完后打电话吗?

4

2 回答 2

4

不,文档说得很清楚:

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

于 2012-06-13T11:00:39.497 回答
0

我认为 cStringUsingEncoding 正在为转换后的字符串分配内存以指定编码因此,如果您不使用自动释放池,则永远不会释放此内存。

于 2012-06-13T11:01:25.647 回答