当我的字符串中没有表情符号时,NSString崩溃了

时间:2016-12-21 17:42:02

标签: c# ios xamarin nsstring emoji

我对我的申请有一个对话视图。 我想在这个视图中以良好的方式显示表情符号。 所以我将我的文本存储在NSString创建中,参数编码设置为:" NSStringEncoding.NonLossyASCII"。 当我的字符串上有表情符号时它会起作用。 但是当字符串上没有表情符号时,日志会崩溃:

  

异常屏蔽异常:无法初始化该实例   type' Foundation.NSString&#39 ;: native' initWithData:encoding:'方法   返回零。可以通过设置忽略此条件   MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure为false。在(包装   托管到本机)   ObjCRuntime.Messaging:void_objc_msgSend_IntPtr_IntPtr_bool   (intptr,intptr,intptr,intptr,bool)at   Foundation.NSObject.InvokeOnMainThread(System.Action动作)   [0x00007] in   /Users/builder/data/lanes/3988/e02d2723/source/xamarin-macios/src/Foundation/NSObject2.cs:560

是否可以检查字符串上是否有表情符号? 谢谢

1 个答案:

答案 0 :(得分:1)

使用ASCII encoding无法表达表情符号(它很古老,只包含128个基本字符)。因此,字符串初始化失败(如错误消息所示)。使用其他编码(NSUTF8StringEncoding应该有效)。