2016-10-04 105 views
0

隨着最近升級到iOS 10和Titanium SDK 5.5.1.GA,我的應用程序在 試圖從父視圖中移除web視圖時崩潰。 webview正確加載HTML,但嘗試返回應用程序失敗時。從iOS視圖中移除Web視圖崩潰iOS 10上的應用程序

代碼:

var aItems = view.children; //<- fails on this line if parent view has a webview child 
    for(var i = aItems.length - 1; i >= 0; i--) { 

     aItems[ i ].backgroundImage = ""; 
     aItems[ i ].image = ""; 
     view.remove(aItems[ i ]); 
     aItems[ i ] = null; 
    } 

錯誤:

error 10:37:52.693612 -0500 NSURLConnection finished with error - code -1001 
    default 10:37:52.851682 -0500 invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution. 

版本:

Operating System 
     Name      = Mac OS X 
     Version      = 10.12 
     Architecture    = 64bit 
     # CPUs      = 8 
     Memory      = 8589934592 
    Node.js 
     Node.js Version    = 5.11.1 
     npm Version     = 3.8.6 
    Titanium CLI 
     CLI Version     = 5.0.9 
    Titanium SDK 
     SDK Version     = 5.5.1.GA 
     Target Platform    = iphone 

這不僅不能在iOS,Android的沒有。

更新: 如果我沒有設置任何HTML到web視圖,應用程序工作正常。我正在遠程獲取html,然後在webview上進行設置。

+0

如果您可以在獨立應用程序中重現此錯誤,那很可能是一個錯誤。應該在Appcelerator Jira中報告哪些內容:https://jira.appcelerator.org/secure/Dashboard.jspa 如果這樣做,請在此處註釋鏈接故障單! –

+1

https://jira.appcelerator.org/browse/AC-4560 < - 爲問題製作了一張傑拉票 – deliberateSnafu

回答

0

之前還是可以空兒:

for(var i in view.children) view.children[i] = null; 

現在你有兩種方式,你可以嘗試:

1)使用「removeAllChildren」的方法,而不是做循環並刪除?

view.removeAllChildren(); 

2)嘗試歸零之後的意見屬性設置爲空數組的孩子:

view.children = []; 

無論哪種方式,我認爲這是一個平臺的bug,你應該創建一個JIRA Ticket

+0

我會試試看,並告訴你它是否有效。謝謝你的幫助! – deliberateSnafu

+0

我試過你的解決方案,但它沒有解決問題。我最終構建了一個測試應用程序,但仍然能夠創建問題。我正在爲bug提供一張傑拉票。謝謝你的幫助。 – deliberateSnafu