SBApplication(在本例中为 SafariApplication)导致 SIGKILL (Objective-C)

SBApplication (in this case SafariApplication) leads to SIGKILL (Objective-C)

我有一个全局 SafariApplication 变量(来自 Scripting Bridge 生成的 Safari header),当然,我将其设置为 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,但结果是一样的。

请帮帮我。

提前致谢,

埃里克·范德普拉斯

哇!在一些帮助下我解决了它:只需 setTimeout: 在 SBApplication(在本例中为 SafariApplication)上设置一个小的时间间隔,例如 1 或 2(秒),代码不会使您的程序死锁,而是在 1 或之后继续等待2秒。 在这种情况下,导致死锁的方法将 return nil.