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