【问题标题】:Calling multiple arguments from objective-c to applescript-objc从objective-c调用多个参数到applescript-objc
【发布时间】:2013-08-02 12:27:42
【问题描述】:

我有一个 applescript-objc 脚本,其方法如下:-

on say_(phrase, userName)
    set whatToSay to "\"" & phrase & " " & userName & "\""
    say whatToSay
end say_

我想从objective-c调用这个方法,但似乎无法弄清楚如何调用具有多个参数的方法,我没有问题调用只有一个参数的方法,如下所示:-

@interface NSObject (ASHandlers)
- (void)say:(NSString *)phrase;
@end

@implementation AppDelegate

@synthesize window, sayTextField;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
   scriptFile = NSClassFromString(@"Test");
   if ( !scriptFile ){
      // Handle errors here
   return;
   }
}

- (IBAction)say:(id)sender{
   NSString *phrase = [sayTextField stringValue];
   [scriptFile say:phrase];
}

请有人帮忙。

问候, 安迪。

【问题讨论】:

    标签: objective-c function methods arguments applescript-objc


    【解决方案1】:

    对于初学者,IBActions 必须具有以下签名:

    -(void)action;
    -(void)actionWithSender:(id)sender;
    -(void)actionWithSender:(id)sender event:(UIEvent*)event;
    

    因此,如果您正在寻找具有多个参数的 IBAction。

    但是,要回答您的问题,在 Objective-C 中拥有一个具有多个参数的方法,它看起来像这样:

    - say:(NSString *)textToSay withUserName:(NSString *)userName {
       ...
    }
    

    在 AppleScriptObjC 中,将所有 Objective-C 方法参数移动到方法名称的开头,用下划线替换冒号,并将参数放在括号中。

    on say_withUserName_(textToSay, userName)
        ...
    end say_withUserName_ 
    

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2018-11-10
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多