3

我是一位经验丰富的 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

旁注:当前目录不是构建的应用程序目录。这是我尝试使用它的方法之一:

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 打开我的文件。

我究竟做错了什么?

4

1 回答 1

2

出于某种原因,和 ASObjC 类似的形式经常POSIX file x需要alias y重写为ASObjC。pPath as POSIX filehfsPath 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
于 2014-04-26T15:00:04.067 回答