从nsstring iOS中删除空字符

ste*_*osn 1 objective-c nsstring ios

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

 trimmedtext=[NSString stringWithCString:[mycharstring cStringUsingEncoding:[ NSString defaultCStringEncoding ] ] encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

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

它崩溃了,因为我认为在我的NSString中有一些NULL字符.

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

我怎样才能克服这个问题?

任何帮助赞赏.

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

小智 6

它崩溃了,因为我的NSString中有NULL字符.

除了它没有.

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

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