我正在尝试使用一些命令行参数重新启动我的应用程序。下面的代码工作(没有命令行参数)
- (void)relaunchAfterDelay:(float)seconds
{
NSLog(@"relaunchAfterDelay ") ;
NSTask *task = [[NSTask alloc] init] ;
NSArray * args = [ NSArray arrayWithObjects:@"-c", [NSString stringWithFormat:@"sleep %f; open \"%@\"", seconds, [[NSBundle mainBundle] bundlePath]], nil ] ;
[task setLaunchPath:@"/bin/sh"];
[task setArguments:args];
[task launch];
[NSNotificationCenter defaultCenter ] postNotificationName : @"Terminate" object : self ] ;
}
但是,如果我将所需的命令行参数添加到args
数组,则应用会终止,但不会重新启动。
我做了类似的事情:
NSMutableArray *obj = [ NSMutableArray arrayWithObjects:@"-c", @"updated", nil ] ;
NSArray * args = [ NSArray arrayWithObjects:obj, [NSString stringWithFormat:@"sleep %f; open \"%@\"", seconds, [[NSBundle mainBundle] bundlePath]], nil ] ;
"更新"是要传递给新实例的必需参数。我错过了什么?
感谢任何帮助。