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.
我有一个全局 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.