繁体   English   中英

从objective-c调用多个参数到applescript-objc

[英]Calling multiple arguments from objective-c to applescript-objc

我有一个带有如下方法的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];
}

请有人帮忙。

问候,安迪。

对于初学者,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_ 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM