SBApplication (в данном случае SafariApplication) приводит к SIGKILL (Objective-C)
У меня есть глобальная переменная SafariApplication (из сгенерированного заголовка Safari моста сценариев), которую я, конечно, установил для приложения Safari:
self.safari = [SBApplication applicationWithBundleIdentifier:@"com.apple.Safari"];
Затем я проверяю URL текущей вкладки, выполнив:
SBElementArray *windows = [self.safari windows];
SafariWindow *window = [windows objectAtIndex:0];
SafariTab *tab = [window currentTab];
NSURL *url = [NSURL URLWithString:[tab URL]];
Это отлично работает. Я делаю это дважды в секунду, чтобы получить непрерывную информацию о том, что пользователь открывает в Safari.
Но когда я открываю новую вкладку в Safari, просто иногда (возможно, когда код работает одновременно с открытием новой вкладки), она вылетает и выдает SIGKILL. В большинстве случаев это происходит на NSURL *url = [NSURL URLWithString:[tab URL]];
'линия, но это действительно зависит.
Я знаю, действительно странно, но я понятия не имел, что это вызвало.
Я пытался сделать то же самое, но затем с AppleScript, но это закончилось тем же.
Пожалуйста, помогите мне.
Заранее спасибо,
Эрик ван дер Плас
1 ответ
Вот Это Да! С некоторой помощью я решил это: просто setTimeout:
на SBApplication (в данном случае SafariApplication) на небольшой промежуток времени, например 1 или 2 (секунды), и код не заблокирует вашу программу, а просто продолжит работу через 1 или 2 секунды ожидания. В этом случае метод, который вызывает взаимоблокировку, вернет ноль.