2011-08-27 46 views
1

我想從Javascript返回一個字符串:多少個字符的NSString有

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

爲短字符串,返回的是OK。 但是,當我返回一個很長的字符串(比如字符串中有5000個字符)時,我什麼都得不到。

所以我猜這可能是由於NSString大小限制或我的「var jvString」大小限制。

請幫忙。感謝

+0

你可以在這裏找到更多關於NSString對象最大尺寸的信息,如果有幫助的話:http://stackoverflow.com/questions/6482641/what-is-the-maximum-length-of-an- nsstring-object –

回答

1

stringByEvaluatingJavaScriptFromString返回nil的方法中,這意味着出了問題。這是最有可能不是因爲NSString大小限制,但由於以下原因之一:

  • JavaScript執行超過10秒需要較長的時間
  • 分配劇本超過10 MB

來自文檔:

JavaScript執行時間限制爲10秒,每個頂級 入口點。如果您的腳本執行超過10秒鐘,則視圖的網頁 將停止執行腳本。這很可能發生在您的代碼中的隨機 位置,因此可能會導致意想不到的後果。強制執行此限制 是因爲JavaScript執行可能導致主線程爲 區塊,因此當腳本運行時,用戶無法與網頁交互 。

JavaScript分配也被限制爲10 MB。如果您對JavaScript的總內存分配 超出了此限制,則Web視圖會引發 異常。

0

由於32位結構應當具有2^31-1字符應該是足夠一個最大長度;)

+0

感謝您的迴應。但是,似乎我只能接受一個答案。謝謝。 –