从nsstring iOS中删除空字符

时间:2012-12-17 23:40:12

标签: objective-c ios nsstring

我有这行代码导致我的应用程序崩溃。

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

错误是: *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* + [NSString stringWithCString:encoding:]:NULL cString'

崩溃是因为我认为我的NSString中存在NULL字符。

NSLog给了我'friendXx',字符串中有一个表情符号!

我如何克服这个问题?

任何帮助表示感谢。

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

1 个答案:

答案 0 :(得分:6)

  

崩溃是因为我的NSString中有NULL字符。

除非它没有。

问题是C字符串(类型const char *)是一个指针,其值为NULL,i。即这是无效的指针。例如,主要原因可能是mycharstring变量为nil

编辑:所以字符串中有一些符号,默认的C字符串编码无法处理,这就是它返回NULL的原因。请尝试使用[mycharstring UTF8String]