2013-04-17 9 views
2

신청서에서 launchctl을 실행하고 싶습니다. 내가 터미널에서 명령을 실행할 때 나는 다음과 같은 코드를 사용하고이를 위해NSTask에서 launchctl 사용

,

NSTask *task; 
task = [[NSTask alloc] init]; 
[task setLaunchPath: @"/bin/launchctl"]; 

NSArray *arguments; 
arguments = [NSArray arrayWithObjects: @"load ", @"/Users/XYZ/com.XYZ.plist", nil]; 
[task setArguments: arguments]; 

[task launch]; 

그것은 나에게 오류를 제공, launchctl: unknown subcommand "load "

그러나, 그것은 제대로

>launchctl load /Users/XYZ/com.XYZ.plist 

세드릭을 실행 여기에 차이가 있으며 어떻게 NSTask를 사용할 수 있습니까?

답변

5

@"load "의 후행 공백을 제거하십시오.

배열의 각 객체는 작업에 대한 단일 인수입니다. 인수를 분리하거나 인수를 인용하기 위해 공백을 추가 할 필요가 없습니다 ( ).

+0

OMG !!!! 감사. : D – MacGeek

+0

@MacGeek : 천만에. –

+1

자살을 거의하지 않는 느낌. :디 – MacGeek