调用AppDelegate.applescript文件中单独文件中包含的AppleScript ObjC类

时间:2017-07-24 16:49:20

标签: applescript

我正在使用AppleScript ObjC创建一个应用程序。我已经创建了一个单独的类文件,我试图从该类调用其中一个处理程序,但是当我这样做时,我收到一个关于缺失值的错误。在我可以调用处理程序之前,我需要做些什么来引用类文件。

2 个答案:

答案 0 :(得分:1)

vadian提到的两种方式是正确的。在此详细说明:

确保您的脚本包装如下:

script yourScriptName
property parent:NSObject

on method1
log "hello world"
end

-- more methods

end script

然后在IB中添加蓝色立方体并将其类设置为" yourScriptName"。然后将其连接到appDelegate的属性。

property yourScriptName: missing value

调用方法:

yourScriptName's method1() -- hello world

在较大的项目中,您可以构建桥对象,这样您只需连接到桥而不是每个脚本

script bridge
    property parent: NSObject
    property yourScriptName:missing value
    property otherScript:missing value
    -- more...
end script

将每个脚本连接到网桥。然后访问所有脚本只能连接到网桥,例如在你的appDelegate。

访问

等方法
property bridge:missing value -- connected in IB like before

bridge's yourScriptName's method1() -- hello world

答案 1 :(得分:0)

有两种选择:

  1. 与Objective-C "*": core: customFileTypes: "source.js.jsx": [ "js" "es6" "es" "babel" "babelrc" "jsx" ] PeriodList = pd.read_csv('IP_List.csv') PeriodList = PeriodList.as_matrix() # Pdata format: # Pdata{hull, engine, 1}(:) - datetime array of hull and engine P data # Pdata{hull, engine, 2}(:,:) - parametric data corrsponding to timestamps in datetime array # Pdata{hull, engine, 3}(:) - array of parametric channel labels Pdata_1 = pd.read_csv('LPD-17_1A.csv') [list_m, list_n] = PeriodList.shape #Pdata_1 = Pdata_1.as_matrix() startdatetime = ['' for x in range(list_m)] enddatetime = ['' for x in range(list_m)] #Up to line 27 done on MatLab script for d in range (0, list_m): Hull = PeriodList[d,0] Engine = PeriodList[d,1] startdatetime[d] = pd.to_datetime(PeriodList[d,2]) enddatetime[d] = pd.to_datetime(PeriodList[d,3]) #startdatetime = pd.to_datetime(PeriodList[d,2]) 类似,用于创建实例。
  2. 在Interface Builder中使用对象(蓝色立方体)和alloc中的属性,将对象的类设置为单独的类,并将对象连接到属性。