0
내 프로그램에서 현재 NSTask를 5 번 사용하고 있으며 모두 잘 작동하지만 너무 유사 할 때 너무 많은 코드를 반복해야한다는 것에 지쳐서 퍼팅을 시도했습니다. 함수. 불행히도 그 결과 줄에 충돌이 발생합니다 : [task launch]
. 그 외에도 나는이 코드를 함수 밖에서 완벽하게 작동하는 것처럼 충돌을 일으키는 원인을 파악할 수 없다. 다음과 같이함수에서 사용할 때 NSTask가 충돌 함
내가 사용하는 방법은 다음과 같습니다
- (NSString *)performTask: (NSString *)launchPath: (NSString *)argument1: (NSString *)argument2: (NSString *)argument3: (NSString *)argument4: (NSString *)argument5
{
NSString *resPath = [[NSBundle mainBundle] resourcePath];
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath: [NSString stringWithFormat: launchPath, resPath]];
NSArray *arguments = [NSArray arrayWithObjects: argument1, argument2, argument3, argument4, argument5, nil];
[task setArguments: arguments];
NSPipe *pipe = [NSPipe pipe];
[task setStandardInput:[NSPipe pipe]];
[task setStandardOutput: pipe];
NSFileHandle *file = [pipe fileHandleForReading];
[task launch];
NSData *data = [file readDataToEndOfFile];
NSString *status = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
return status;
}
나는 정말이 충돌하는 이유 정말 볼 수없는,이 해결 될 수 있기를 바랍니다.
미리 감사드립니다.
어떻게 충돌 하는가? 종료 코드는 무엇입니까? 예외가 있습니까? 콘솔 출력이 있습니까? –
NSParameterAssert –
SIGBART를 제외하고는 아무 것도 말하지 않습니다. 도움이됩니까? 또는 충돌에 대한 자세한 정보는 어디에서 찾을 수 있습니까? – Cristian