我的要求是创建我的应用程序的多个实例。我能够成功地创建多个没有参数的实例,但是当我用我的 runCommand 传递一些参数时,它会创建我的应用程序的无限实例,为了停止这种情况,我必须强制关闭我的系统。
提前致谢 :
我的工作代码如下:
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
{
isOpenFileFlag = YES;
NSString *filePathStr = [NSString stringWithFormat:@"open -n /Applications/MyApp.app --args %@",filename];
[self runCommand:filePathStr];
return YES;
}
- (NSString *) runCommand: (NSString *) commandToRun {
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/bin/sh"];
NSArray *arguments = [NSArray arrayWithObjects: @"-c" , [NSString stringWithFormat:@"%@", commandToRun], nil];
NSLog(@"run command: %@",commandToRun);
[task setArguments: arguments];
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *output;
output = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
return output;
}
我唯一要做的就是一个一个地创建我的应用程序的多个实例。