在oc中,如何将const char *转换成NSString
时间: 2024-03-09 08:46:28 浏览: 159
NSString与C字符串之间的相互转换
在 Objective-C 中,可以使用 `NSString` 的 `stringWithUTF8String:` 方法将 `const char *` 类型的字符串转换为 `NSString` 对象,示例如下:
```objective-c
const char *cString = "hello world";
NSString *str = [NSString stringWithUTF8String:cString];
```
在上面的示例中,我们将 `const char *` 类型的字符串 `"hello world"` 转换为 `NSString` 对象 `str`。
需要注意的是,如果 `const char *` 类型的字符串是使用动态内存分配函数(如 `malloc`、`calloc`、`realloc` 等)分配的,则需要手动释放它们的内存。例如:
```objective-c
char *cString = malloc(sizeof(char) * 12);
strcpy(cString, "hello world");
NSString *str = [NSString stringWithUTF8String:cString];
free(cString);
```
在上面的示例中,我们使用 `malloc` 分配了一块内存来存储字符串 `"hello world"`,然后使用 `strcpy` 将字符串复制到该内存中。最后,我们将 `cString` 字符串转换为 `NSString` 对象 `str`,并手动释放了 `cString` 字符串所占用的内存。
阅读全文