我有一行代码导致我的应用程序崩溃。
trimmedtext=[NSString stringWithCString:[mycharstring cStringUsingEncoding:[ NSString defaultCStringEncoding ] ] encoding:NSUTF8StringEncoding];
错误是: * 由于未捕获的异常"NSInvalidArgumentException"而终止应用程序,原因:"* +[NSString stringWithCString:encoding:]: NULL cString"
它崩溃是因为我认为我的 NSString 中有空字符。
NSLog给了我这个'朋友Xx',字符串中有一个表情符号!
如何克服此问题?
任何帮助表示赞赏。
正确答案: text=[NSStringstringWithCString:[mycharstring UTF8String ] encoding:NSUTF8StringEncoding];
它崩溃是因为我的 NSString 中有空字符。
除了它没有。
问题是C字符串(类型为const char *
)是一个指针,其值NULL
,即它是无效的指针。例如,这样做的主要原因可能是mycharstring
变量nil
。
编辑:所以字符串中有一些默认 C 字符串编码无法处理的符号,这就是它返回 NULL 的原因。请尝试改用[mycharstring UTF8String]
。