#ios #titanium #appcelerator #appcelerator-titanium
#iOS #titanium #ускоритель приложений #ускоритель приложений -titanium
Вопрос:
С недавним обновлением до iOS 10 и Titanium SDK 5.5.1.GA , мое приложение выходит из строя при попытке удалить webview из родительского представления. Webview правильно загружает HTML, но при попытке вернуться приложение завершается с ошибкой.
Код:
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 в webview, приложение работает нормально. Я удаленно получаю html, а затем устанавливаю его в webview.
Комментарии:
1. Если вы можете воспроизвести эту ошибку в автономном приложении, скорее всего, это ошибка. О чем следует сообщать в Appcelerator Jira: jira.appcelerator.org/secure/Dashboard.jspa Если вы это сделаете, укажите ссылку на билет в комментариях здесь!
2. jira.appcelerator.org/browse/AC-4560 <— сделал тикет jira для выдачи
Ответ №1:
Вы могли обнулить дочерние элементы раньше:
for(var i in view.children) view.children[i] = null;
Теперь у вас есть два способа, которые вы можете попробовать:
1) используйте метод «removeAllChildren» вместо выполнения цикла и удаления?
view.removeAllChildren();
2) попробуйте установить для свойства views значение пустой массив после обнуления его дочерних элементов:
view.children = [];
В любом случае, я думаю, что это ошибка платформы, вам следует создать билет JIRA
Комментарии:
1. Я попробую это и сообщу вам, работает это или нет. Спасибо за вашу помощь!
2. Я попробовал ваше решение, но оно не устранило проблему. В итоге я создал тестовое приложение и все же смог создать проблему. Я ввожу тикет jira для ошибки. Спасибо за вашу помощь.