外部アプリを起動するときにパラメータを渡すのは、どうすれば良いのかとググってみると、Launching an Mac App with Objective-C/Cocoa – Stack Overflowのページを発見。
launchApplicationAtURL:options:configuration:error:
を使うのが良さそうです。NSWorkspace Class Reference
NSError *error = nil;
NSArray *arguments = [NSArray arrayWithObjects:@"引数1", @"引数2", nil];
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:外部アプリのパス options:NSWorkspaceLaunchDefault configuration:[NSDictionary dictionaryWithObject:arguments forKey:NSWorkspaceLaunchConfigurationArguments] error:&error];
//
if (error != nil) {
NSLog(@"%@",[error localizedDescription]);
}
受け取る側のアプリでは、
[[NSProcessInfo processInfo] arguments]
を使えば良さそうなので、例えば
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
内に
NSArray* arguments = [[NSProcessInfo processInfo] arguments];
int i;
for (i = 0; i < [arguments count]; i++)
{
NSLog(@"%d=%@\n",i,[arguments objectAtIndex:i]);
}
で、受け取ることができました。
なお、i=0にはアプリまでのパスが入っていました。i=1からが渡されたパラメータとなるようです。

コメント