我有一个全局 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,但这最终是一样的。
请帮帮我。
提前感谢,
埃里克·范德普拉斯
哇!在一些帮助下,我解决了它:只需在SBApplication(在本例中为SafariApplication)上setTimeout:
到1或2(秒)等小时间间隔,代码就不会死锁您的程序,而只是在等待1或2秒后继续。在这种情况下,导致死锁的方法将返回 nil。