2012-08-26 2 views
0

현재 사용자가 환경 설정 번들을 통해 명령 인수 (예 : sbutils의 sbalert)를 작성하는 조정 작업을하고 있습니다. NSString에 저장할 수 있지만 sbalert 명령의 인수로 사용할 수 없습니다. 이것이 가능한가? 거기에 대안이 있습니까? 내 코드는이 테스트입니다시스템 (""); 내에서 NSString을 사용할 수 있습니까?

int main(int argc, char **argv, char **envp) { 

NSString *string1 = @"Hello World"; 
NSLog(@"%@", string1); 
system(" sbalert -t %@", string1); 

    return 0; 
} 

// vim:ft=objc 

주, 그래서있는 NSString은 번들 여전히 THEOS 환경 설정의 텍스트와 동일하지 않은 컴파일하는 동안 나에게 오류를 제공합니다.

+0

시도한 사람 3 시스템 또는 NSString 클래스 참조? 그렇게 명백하다. –

답변

8

아니요. system 함수는 형식 문자열을 사용하지 않으며 % @ 형식 지정자를 사용할 수 없습니다. 이는 Cocoa에만 해당되며 C 표준 라이브러리에서는 사용할 수 없습니다. 다음과 같이 문자열을 미리 형식화해야합니다.

NSString *cmd = [NSString stringWithFormat:@"sbalert -t '%@'", string1]; 
system([cmd UTF8String]);