2010-02-04 71 views
1

我正在使用xml解析器来填充数组。此字符串:'Calle Mare deDéude'在[NSPlaceholderString initwithstring:]处产生异常。在Snow Leopard(10.6)上,它在Leopard(10.5)上报告了一个零的参数,但它引发了一个异常,但报告没有错误。NSString是否支持非标准/非英文字符?

当我用'Calle Mare de Deu de'替换字符串'Calle Mare deDéude'时,它可以正常工作。问题是由'é'字符引起的。

NSString不支持这个和其他特殊字符吗?

感谢 迪皮卡

+0

这个问题很难理解,你可以尝试进一步澄清一下吗? – 2010-02-04 07:37:49

+0

主要问题已经足够清楚了(我认为提问者推动了他/她的英语指挥的限制),但是我想知道一些细节,比如(1)“Calle Mare deDéude”是来自数据库或XML解析器,(2)提问者使用的API,以及(3)“将其转换为数组”的含义。 – 2010-02-04 11:54:22

回答

3

例外发生NSPlaceholderString initwithstring:雪leapord]无参数,在leapord异常发生,但警报不来的。

你会得到一个异常,告诉你你通过了nil参数,因为你传递了一个nil参数。

您通过的字符串是nil。这与字符串的编码无关,原因有两个:

  1. 没有字符串。 (如果你已经通过了一个字符串,你不会通过nil。)
  2. 字符串没有编码;他们只是字符串。编码让你从人类语言字符(字符串)到字节序列(数据)。

此外,如果你有一个字符串传递给initWithString:,你就不需要创建使用initWithString:一个字符串,因为你已经拥有的字符串。如果你想复制它,你可以简单地发送一个copy消息。

我们不知道你已经拥有了什么,这是非常重要的。请编辑您的问题以包含从数据库或XML解析器中获取“字符串”的代码,并将其传递到initWithString:

难道仅仅是因为“E”,就是说我想知道的NSString不支持“E”或任何其它字符

的NSString支持所有以Unicode字符。实际上,这意味着所有这些。