Objective c NSString STRING BYREPLACINGOCURNCESOFSTRING未发生';t使用逃生控制器时不能正常工作
我想从Objective c NSString STRING BYREPLACINGOCURNCESOFSTRING未发生';t使用逃生控制器时不能正常工作,objective-c,nsstring,Objective C,Nsstring,我想从NSString中删除“,但它就是不起作用 该字符串来自XMLParser: - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if([elementName isEqualToString:@"li"]){ _isAnswe
NSString
中删除“
,但它就是不起作用
该字符串来自XMLParser:
- (void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if([elementName isEqualToString:@"li"]){
_isAnswer = NO;
}else if([elementName isEqualToString:@"span"]){
NSString *immutableString = [NSString stringWithString:currentElementValue];//currentElementValue is myMutableString
NSString* myString = [immutableString stringByReplacingOccurrencesOfString:@"\"" withString:@"00000"];
myString = [myString stringByReplacingOccurrencesOfString:@"״" withString:@"00000"];
myString = [myString stringByReplacingOccurrencesOfString:@"“" withString:@"00000"];
myString = [myString stringByReplacingOccurrencesOfString:@"”" withString:@"00000"];
NSLog(@“myString-”,myString);
}
}
- xml中的字符串有一个
“
- 日志:
而不是:myString - this is the " string
myString - this is the 00000 string
NSString *str = @"LOL \"... ";
NSLog(@"%@",str);
str = [str stringByReplacingOccurrencesOfString:@"\"" withString:@"00000"];
NSLog(@"%@",str);
以下是输出:
>> LOL "...
>> LOL 00000...
向我们展示您的字符串是如何初始化的
编辑: 1) 首先确保它是
“
字符,而不是״、”或“
2) 试着这样做,它的结果与我的第一个答案相同。
NSString *str = @"LOL \"... ";
unichar const maskChar = 0x0022; // Code of " char
NSString *mask = [[NSString alloc] initWithCharacters:&maskChar length:1];
NSLog(@"%@",str);
str = [str stringByReplacingOccurrencesOfString:mask withString:@"00000"];
NSLog(@"%@",str);
如果第二个解决方案不起作用,那么它就不是
“
字符”定义“不起作用”。并不是它不起作用-您只需再次注销原始字符串,而不是修改后的字符串。(顺便说一句,这是真正的代码吗?NSLog()
如何知道它必须在格式字符串之外打印另一个字符串,如果您没有为它提供%@
转换说明符?NSLog(@“newString-”,newString);
应该是NSLog(@“newString-%@”,newString);
…)您正在替换myString
但正在记录newString。@Luda-根据您的更新,在调用stringByReplacingOccurrencesOfString
之前,请先记录myString
。您在两个位置都记录了newString
。记录myString
之前和之后,因为这是您正在更改的内容。现在您又犯了同样的错误:重复替换immutableString
中的字符,但分配给myString
。在最后三行中,将immutableString
替换为myString
。