NSString 可以有多少个字符

发布于 2024-12-01 23:06:37 字数 276 浏览 0 评论 0原文

我试图从 Javascript 返回一个字符串:

   [myWebView stringByEvaluatingJavaScriptFromString:@"myJavaScriptFunction()"];

对于短字符串,返回是可以的。 但是,当我返回一个很长的字符串(例如字符串中的 5000 个字符)时,我什么也得不到。

所以我猜测这可能是由于 NSString 大小限制或我的“var jvString”大小限制。

请帮忙。谢谢

I am trying to return a string from Javascript:

   [myWebView stringByEvaluatingJavaScriptFromString:@"myJavaScriptFunction()"];

for short strings, the return is OK.
However, when I return a very long string(say 5000 characters in the string), I couldn't get anything.

So I am guessing it might due to the NSString Size limitation OR my "var jvString" size limitation.

Please help. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深爱不及久伴 2024-12-08 23:06:37

当方法 stringByEvaluatingJavaScriptFromString 返回 nil 时,表示出现了问题。这很可能不是,因为 NSString 大小限制,但出于以下原因之一:

  • JavaScript 执行时间超过 10 秒
  • 分配的内存超过 10 MB

脚本 文档:

每个顶级的 JavaScript 执行时间限制为 10 秒
入口点。如果您的脚本执行时间超过 10 秒,Web
view 停止执行脚本。这很可能是随机发生的
放在您的代码中,因此可能会导致意想不到的后果。这个限制
是因为 JavaScript 执行可能会导致主线程
阻止,因此当脚本运行时,用户无法交互
与网页。

JavaScript 分配也限制为 10 MB。网页视图升高
如果超出总内存分配的此限制,则会出现异常
对于 JavaScript。

When the method stringByEvaluatingJavaScriptFromString returns nil, it means something has gone wrong. This is most likely not because of NSString size limitations, but for one of the following reasons:

  • the javascript execution took longer than 10 seconds
  • the script allocated more than 10 MB

From the documentation:

JavaScript execution time is limited to 10 seconds for each top-level
entry point. If your script executes for more than 10 seconds, the web
view stops executing the script. This is likely to occur at a random
place in your code, so unintended consequences may result. This limit
is imposed because JavaScript execution may cause the main thread to
block, so when scripts are running, the user is not able to interact
with the webpage.

JavaScript allocations are also limited to 10 MB. The web view raises
an exception if you exceed this limit on the total memory allocation
for JavaScript.

疯到世界奔溃 2024-12-08 23:06:37

由于 32 位结构,它的最大长度应该是 2^31-1 个字符,这应该足够了;)

Due to the 32 bit structure it should have a max length of 2^31-1 characters which should be enough ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文