将stringByEvaluatingJavaScriptFromString与文字字符串一起使用时,我的javascript函数可以正常运行,但是当使用格式化字符串时,它不会。
我检查了调试器并且还测试了调用javascript警报功能和格式化字符串在屏幕上正确打印,但不知何故它不一样,因为我的javascript搜索功能无法找到它在使用文字字符串时找到的结果。
以下是一些有效的例子,而不是“
文字字符串 - 工作
NSString *startSearch = @"MyApp_HighlightAllOccurencesOfString(\"amar a d'us [ahavát hashém]\")";
[_webView stringByEvaluatingJavaScriptFromString:startSearch];
我试过的一些Formated字符串示例 - 不工作
1)
NSString *startSearch = [NSString stringWithFormat:@"MyApp_HighlightAllOccurencesOfString(\"%@\")",selectedTopic];
[_webView stringByEvaluatingJavaScriptFromString:startSearch];
2)
NSString *startSearch = [NSString stringWithFormat:@"MyApp_HighlightAllOccurencesOfString(\"%@\")",@"amar a d’us [ahavát hashém]"];
[_webView stringByEvaluatingJavaScriptFromString:startSearch];
3)
NSString * t = @"amar a d’us [ahavát hashém]";
NSString *startSearch = [[NSString alloc]initWithFormat:@"MyApp_HighlightAllOccurencesOfString(\"%@\")",t];
[_webView stringByEvaluatingJavaScriptFromString:startSearch];
更新
看看我的调试器输出。字符串有不同的长度...
startSearch2是工作的。
(lldb) po startSearch2
$5 = 0x000256d8 MyApp_HighlightAllOccurencesOfString("amar a d'us [ahavát hashém]")
(lldb) po startSearch2.length
$6 = 67 [no Objective-C description available]
(lldb) po startSearch3
$7 = 0x07a40000 MyApp_HighlightAllOccurencesOfString("amar a d'us [ahavát hashém]")
(lldb) po startSearch3.length
$8 = 69 [no Objective-C description available]
(lldb)