我是一名经验丰富的Cocoa程序员和Applescript新手。我需要编写基于Microsoft的报告生成器。我从Applescript桥开始,基本上用Word打了一堵墙。我现在正在尝试使用ApplescriptObjC,我正在挣扎着地狱。
当使用Objective-C编写的方法报告其路径时,我甚至陷入了打开文件的愚蠢步骤。 Objective-C类代码非常简单(作为一个人为的例子):
@implementation Reporter
- (NSString *)templatePath:(NSString *)fileName
{
NSString *fullPath = [self.currentDirectory stringByAppendingPathComponent:fileName];
return fullPath;
}
@end
Side注意:当前目录不是构建的app目录。 这是我尝试使用它之一:
on createReport()
set my myReporter to Reporter's alloc()'s init()
set WordApp to the application "Microsoft Word"
set FinderApp to the application "Finder"
set theWordTemplatePath to myReporter's templatePath:"Rapport.docx"
set theWordTemplatePath to theWordTemplatePath as text
tell FinderApp to open POSIX file theWordTemplatePath
end createReport
这个错误:
*** -[CMDAppDelegate applicationWillFinishLaunching:]: Finder got an error: Can’t make «class ocid» id «data optr0000000080B00E0080600000» into type integer. (error -1700)
我尝试了很多变化,尽管尝试了很多个小时,但我仍然无法让Word打开我的文件。
我做错了什么?
答案 0 :(得分:2)
出于某种原因,POSIX file x
和alias y
等表单通常必须在ASObjC中重写为pPath as POSIX file
和hfsPath as alias
。
试试这个:
set my myReporter to Reporter's alloc()'s init() set theWordTemplatePath to myReporter's templatePath:"Rapport.docx" set tPath to ((theWordTemplatePath as text) as POSIX file) as alias tell application "Microsoft Word" to open tPath