Objective c NSMutableString到char*
我可以将NSMutableString转换为char* e、 gObjective c NSMutableString到char*,objective-c,nsstring,cstring,Objective C,Nsstring,Cstring,我可以将NSMutableString转换为char* e、 g 使用-UTF8String方法: NSString* someval = @"This is a test."; NSMutableString *temp = [NSMutableString stringWithString:someval]; const char * temp2 = [temp UTF8String]; 使用-UTF8String方法: NSString* someval = @"This is a te
使用
-UTF8String
方法:
NSString* someval = @"This is a test.";
NSMutableString *temp = [NSMutableString stringWithString:someval];
const char * temp2 = [temp UTF8String];
使用
-UTF8String
方法:
NSString* someval = @"This is a test.";
NSMutableString *temp = [NSMutableString stringWithString:someval];
const char * temp2 = [temp UTF8String];
我应该担心它会丢弃限定符的警告吗?就像Apple文档中的一个额外内容(关于cstring的内存管理):返回的C字符串会自动释放,就像释放返回的对象一样;如果需要将C字符串存储在创建C字符串的自动释放上下文之外,您应该复制它。@CatManDo如果您使用我的代码,它不应该给您这个。这可能是因为在您的代码中,
temp2
的数据类型是char*
,而不是const char*
。我应该担心它丢弃限定符的警告吗?就像一个额外的警告一样(关于cstring的内存管理)从Apple文档中:返回的C字符串被自动释放,就像返回的对象被释放一样;如果需要将C字符串存储在创建C字符串的自动释放上下文之外,您应该复制它。@CatManDo如果您使用我的代码,它不应该给您这个。这可能是因为在您的代码中,temp2
的数据类型是char*
而不是const char*
。字符串是如何可变的?您是否希望能够通过操作在temp2
中获得的字节来更改NSMutableString
实例?我需要复制第一个字符串,因为稍后我将只对副本进行更改。但是您打算通过temp2
或temp
进行这些更改吗?或者,换一种说法,你不能将someval
转换为char*
而不是将temp
转换为char*
?我将使用strtok拆分temp2,但我想确保someval永远不会被修改。1)strtok()
不会更改解析的字符串;2) 当您获得NSString
的char*
表示时,更改它不会更改原始字符串;3) 看看-[NSString componentsSeparatedByString://code>-您甚至可能不需要使用strok()
。字符串是如何可变的?您是否希望能够通过操作在temp2
中获得的字节来更改NSMutableString
实例?我需要复制第一个字符串,因为稍后我将只对副本进行更改。但是您打算通过temp2
或temp
进行这些更改吗?或者,换一种说法,你不能将someval
转换为char*
而不是将temp
转换为char*
?我将使用strtok拆分temp2,但我想确保someval永远不会被修改。1)strtok()
不会更改解析的字符串;2) 当您获得NSString
的char*
表示时,更改它不会更改原始字符串;3) 看看-[NSString组件由字符串分隔:
——您甚至可能不需要使用strok()
。