NSString을 C 함수에 전달하려고합니다. 매개 변수를 받아들이지 않거나 무시하는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다 - 고마워요.Objective-C, C 함수에 파일 이름을 전달하는 방법은 무엇입니까?
int copyfiles(int argc, const char **argv)
{
if(argc < 2 || argc > 3)
{
puts("usage: copy file [outfile]");
return 1;
}
const char *infile = argv[1];
char *outfile;
if(argc > 2)
{
outfile = strdup(argv[2]);
expect(outfile, "allocate");
}
...
}
@implementation MyApplication
@synthesize window;
- (void)copy:(NSString *)pathToFile
{
NSString *pathToFile = @"/path/to/file";
copyfiles((int)(const char *)[pathToFile UTF8String],(const char **)[pathToFile UTF8String]);
}
내가 오류를 얻을하지 않습니다하지만 출력이 나에게 준다 "사용 : 파일 복사 [OUTFILE]를"내가 분명히 제대로 매개 변수를 캐스팅하고 있지 않다.
char *을 int로 변환하지 마십시오. – QED
모든 캐스팅이 잘못되어 이것이 오류를주지 않는 이유입니다. 캐스팅은 컴파일러에 있습니다. – Chuck
@Chuck - 고마워. 분명히 objective-c 내에서 c 코드를 디버그하는 것은 쉽지 않습니다. 나는 중단 점을 설정하려고 시도했으나 어느 쪽도 깨지지 않을 것이다. –