代码之家  ›  专栏  ›  技术社区  ›  Pat_Morita

OSAKit。用于执行脚本的框架用法

  •  0
  • Pat_Morita  · 技术社区  · 7 年前

    我在XCode 9.2,Objective-C,MacOS上

    我正在寻找有关使用osakit的任何示例。框架来执行脚本文件(applescript=.scpt或.applescript)或该文件中的方法,其中包含参数以及如何获取响应。

    我自己的applescript实现工作正常,但内存泄漏太多,所以我想试试osakit。但是它的文档很糟糕。

    简单的实现如下

    OSAScript *scriptNAME= [[OSAScript alloc] initWithSource:@"tell application \"Firefox\" to return name of window 1"];  
    NSDictionary * errorDict = nil;  
    NSAppleEventDescriptor * returnDescriptor = [scriptNAME executeAndReturnError: &errorDict];  
    NSLog(@"%@", returnDescriptor);  
    

    但我想加载脚本文件,而不是将脚本作为文本形式的源。

    编辑:

    我试过了

    OSAScript *scriptNAME= [[OSAScript alloc] initWithContentsOfURL:myScriptURL error:&error];
    

    脚本已加载,但我无法调用任何方法。 我有两个简单的方法

    on test()
    display dialog "Hello World"
    end
    
    on testWithArguments:arg
    display dialog (arg's item 1)
    end
    

    对我尝试的第二种方法的调用:

    [scriptNAME executeHandlerWithName:@"testWithArguments" arguments:@[@"Hello World"] error:&errorDict];
    -- doesnt work
    
    [scriptNAME executeHandlerWithName:@"testWithArguments:" arguments:@[@"Hello World"] error:&errorDict];
    -- doesnt work
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Pat_Morita    7 年前

    发现错误。

    这是一个配置错误的applescript文件。已声明为以前测试中的脚本对象。作为简单的applescript文件,它工作得很好。

    推荐文章