使用[NSString stringWithFormat:]后可以释放C字符串吗?

时间:2012-05-10 16:55:41

标签: objective-c c nsstring

我可以在使用[NSString stringWithFormat:]将C字符串传递给%s后将其释放吗?例如:

char *str = malloc(...);
// ... populate str ...
NSString *message = [NSString stringWithFormat:@"[%s]", str];
free(str); // should this be here, or after I'm done with message?

1 个答案:

答案 0 :(得分:8)

创建NSString后,您可以立即安全地释放char缓冲区。 NSStrings总是复制传递给它们的数据。这保证了它们的不变性。