2012-12-17 59 views
1

我有這行代碼,導致我的應用程序崩潰。從nsstring刪除空字符iOS

trimmedtext=[NSString stringWithCString:[mycharstring cStringUsingEncoding:[ NSString defaultCStringEncoding ] ] encoding:NSUTF8StringEncoding]; 

錯誤是:*終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因: '* + [NSString的stringWithCString:編碼:]:NULL CSTRING'

它崩潰,因爲有NULL字符我想在我的NSString。

NSLog給我這個'friendXx',字符串中有一個表情!

我該如何解決這個問題?

任何幫助表示讚賞。

正確答案:text = [NSString stringWithCString:[mycharstring UTF8String] encoding:NSUTF8StringEncoding];

+0

你檢查過你的'mycharstring'是否有效嗎? –

+0

NSLog給我這個朋友Xx,字符串中有一個表情! – stefanosn

+0

你究竟在用這段代碼實現什麼? – omz

回答

6

它崩潰,因爲我的NSString中有NULL字符。

除了它沒有。

問題是C字符串(類型爲const char *)是一個指針,其值爲NULL,即i。即這是無效的指針。主要原因可能是,例如,mycharstring變量是nil

編輯:所以在字符串中有一些默認的C字符串編碼無法處理的符號,這就是爲什麼它返回NULL。嘗試使用[mycharstring UTF8String]來代替。

+0

NSLog給我這個'friendXx',字符串中有一個表情! – stefanosn

+0

@stefanosn見編輯。 – 2012-12-17 23:53:48

+1

它工作!非常感謝!這是正確的代碼:text = [NSString stringWithCString:[mycharstring UTF8String] encoding:NSUTF8StringEncoding]; – stefanosn