1

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

 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];

4

1 回答 1

6

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

除了它没有。

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

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

于 2012-12-17T23:45:29.290 回答