2011-11-02 34 views
0

熱我可以轉換一個NSMutableString char *?NSMutableString char *

例如

NSString* someval = @"This is a test."; 
NSMutableString *temp = [NSMutableSTring stringWithString:someval]; 
char * temp2 = ????Not sure what to do here???; 
+1

是如何串是可變的相關性?你是否希望能夠通過處理'temp2'中的字節來更改'NSMutableString'實例? – 2011-11-02 22:45:20

+0

我需要複製第一個字符串,因爲稍後我將僅對該副本進行更改。 –

+0

但是你打算通過'temp2'或者通過'temp'做出這些改變嗎?或者,改寫它,你能不能將'someval'轉換爲'char *'而不是將'temp'轉換爲'char *'? – 2011-11-02 22:48:56

回答

5

使用-UTF8String方法:

NSString* someval = @"This is a test."; 
NSMutableString *temp = [NSMutableString stringWithString:someval]; 
const char * temp2 = [temp UTF8String]; 
+0

我應該擔心它會丟棄限定符嗎? –

+3

就像一個額外的(關於cstring的內存管理)從Apple Docs:返回的C字符串會自動釋放,就像釋放一個返回的對象一樣;如果需要將C字符串存儲在創建C字符串的autorelease上下文之外,則應複製C字符串。 –

+0

@CatManDo如果你使用我的代碼,它不應該給你。這很可能是因爲在你的代碼中,'temp2'的數據類型是'char *'而不是'const char *'。 –