在Xcode中登录AppleScriptObjC

问题描述:

我在AppleScript中编写代码以将Obj-C Cocoa应用程序粘贴到其他某些东西。我对学习Cocoa的AppleScript非常不熟悉,所以当然我的代码中有各种错误需要解决,我至少需要一些日志记录。在Xcode中登录AppleScriptObjC

但是,从AppleScript'log'命令的输出似乎不会在XCode的调试器控制台中结束,并且调用NSLog似乎不起作用。有什么办法可以从AppleScriptObjC类的方法中将输出发送到调试控制台?

(建议:在这个问答新applescriptobjc标签 - 我不能再创建新的标签)

+0

你应该告诉你正在使用的代码;不同的是,如果需要更改代码中的任何内容,就不可能知道自己做错了什么。 – kiamlaluno 2010-07-16 13:14:16

+0

如果regulus6633的回答不起作用,我会发布代码。我还没有测试过它,因为在发布这个问题之后,我发现了Scripting Bridge并立即切换到了这个地方,因为我在Objective-C中比在AppleScript中舒服得多。 – 2010-07-16 16:24:15

+0

这就是为什么我自己不使用applescriptobjc。我们已经有了脚本桥梁和NSApplescript,所以我没有看到需要学习另一组联系。 – regulus6633 2010-07-20 06:20:05

我不使用applescriptobjc,所以我不知道。不过,我曾经使用Applescript Studio,所以也许我的经验适用。我注意到你不能在应用程序内部有一个日志(或NSLog)语句告诉代码块。基本上如果你这样做,那么你告诉应用程序记录一些东西,应用程序不知道日志命令......所以它不会工作。因此,您必须将日志语句从应用程序告诉块中取出,或者使用告诉我在tell块中记录“something” ......这实际上告诉applescript执行日志记录。

+0

我不确定这是完全正确的。我把日志语句放在各种地方,从来没有遇到过问题。如果这是一个问题,那么log命令可以很容易地被抽象为一个子程序(例如,像我对OP问题的回答),该子程序消除了当前的tell语句。 – 2010-07-19 17:36:49

+1

去了并且测试了它,这对我正常的日志语句不适用。 – 2010-07-20 21:57:36

并不理想,因为这会将到控制台和使用的外壳,但至少应该给你一些作品:

log_entry("Hello, World!") 

on log_entry(theLine) 
    do shell script "echo " & theLine & " >> ~/Library/Logs/AppleScript-events.log" 
end log_entry