使用转义双引号替换双引号(")(\")在iOS 11中不起作用

时间:2017-11-08 07:06:16

标签: ios objective-c ios10 ios11 xcode9

我正在尝试使用转义双引号(\")替换双引号("),但它无法在iOS 11中替换。同样适用于iOS 10.我正在使用Xcode 9.1

示例:

来自搜索栏的输入:"课程"

NSString *modifedSearchString = [searchBar.text stringByReplacingOccurrencesOfString:@"\"" withString:@"\\""\""];

预期输出:\"课程\" (直到iOS 10工作)

iOS 11中的O / p:"课程"

任何人都面临同样的问题?

提前致谢!!

3 个答案:

答案 0 :(得分:3)

iOS 11在键盘设置中添加了“智能标点符号”(参见屏幕截图)。

这意味着在输入“课程”时,它会将其转换为“课程”。 '''被'''和'''字符串取代。这些是不同的引号(智能引号)与默认引号相比。

所以一个选择可能是用'\''替换'''和''''。

Screenshot

答案 1 :(得分:1)

@KishanLal试试这个...

NSString *str = [NSString stringWithFormat:@"\"Course\""];
    NSLog(@"str = %@", str); //str = "Course"
    NSString *modifedSearchString = [str stringByReplacingOccurrencesOfString:@"\"" withString:@"\\""\""];
    NSLog(@"output = %@", modifedSearchString); //output = \"Course\"

答案 2 :(得分:-2)

请尝试通过以下链接,您将获得有关您的问题的一些基本想法。

https://stackoverflow.com/questions/15668459/adding-double-quotes-to-nsstring

"https://stackoverflow.com/questions/15668459/adding-double-quotes-to-nsstring"

我只是想帮助你。

谢谢。