stringByReplacingOccurrencesOfString:产生一个奇怪的结果

时间:2012-10-18 20:01:58

标签: objective-c nsstring

所以我有两个数组:

一个是持有HTML保留字符。另一个是持有实体来替换它们。我将这两个数组放在字典中

然后我遍历字典并尝试用适当的实体替换HTML保留字符的所有出现。

NSArray * chars = [[NSArray alloc] initWithObjects: @"&", @"\"", nil];
NSArray * entities = [[NSArray alloc] initWithObjects: @"&", @""", nil];
NSDictionary * dict = [[NSDictionary alloc] initWithObjects:entities forKeys: chars];  

NSArray * keys;
NSUInteger i, count;
id key, value;

keys = [dict allKeys];
count = [keys count];

for (i = 0; i < count; i++) {
    key = [keys objectAtIndex:i];
    value = [dict objectForKey: key];

    _inputTextView.string = [_inputTextView.string stringByReplacingOccurrencesOfString:key withString:value];
}

我遇到的问题

当字符串是“双引号时,它打印出&amp; quot;而不是”

为什么会这样?

非常感谢任何和所有帮助!

2 个答案:

答案 0 :(得分:1)

这正是预期会发生的事情。它似乎也是你想要的。该方法仅将"字符替换为其HTML实体对应的&quot;

答案 1 :(得分:-1)

好吧,你告诉你的应用程序要替换

  

\“

表示没有带反斜杠的单引号

  

&安培; QUOT

和分号。您的应用程序会执行您告诉它的所有操作。你想做什么?也许我们可以帮助你。