Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSString STRING BYREPLACINGOCURNCESOFSTRING未发生';t使用逃生控制器时不能正常工作_Objective C_Nsstring - Fatal编程技术网

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