2013-09-03 3 views
0

이미지를 파일에 쓰는 lldb 별칭을 쓰려고합니다. 다음과 같은 문제가 있지만 문제가 있습니다 :파일 경로가 포함 된 lldb 정규식

command regex logImageFile 's/(.+) (.+)/ expr (int) [ (id)UIImagePNGRepresentation(%1) writeToFile: @"%2.png" atomically: YES ]/' 

문제는 매번 전체 경로를 입력해야한다는 것입니다. 내가 항상 사용하는 디렉토리를 갖는 것이 훨씬 나을 것입니다. 그래서 나는이 시도 : 나는 Xcode의 콘솔에서 다음과 같이 뭔가를 입력 할 때, 이제

command regex logImageFile 's/(.+) (.+)/ expr (int) [ (id)UIImagePNGRepresentation(%1) writeToFile: @"https://stackoverflow.com/users/myUsername/Desktop/tempImages/%2.png" atomically: YES ]/' 

을 lldb 항상 logImageFile가 유효한 명령 아니라고 말한다.

logImageFile fooImage barFile 

경로 내에 슬래시가있을 가능성이 있습니다. 나는 어떻게 든 그들을 도망쳐 야한다고 생각하지만, 어떻게? 내가 가진 것은 lldb 정규식 안의 NSString이다. 그러나 실제로 어떤 정규식의 맛인지는 모른다.

답변

2

정규식 부분을 분리하기 위해 / 문자를 사용하고 그 문자가 파일 경로의 대체 텍스트에도 나타납니다. 가장 쉬운 해결 방법은 다른 구분 기호를 사용하는 것입니다. s/// 형식이 가장 일반적이지만 쉽게 s###을 사용할 수 있습니다. 예 :

(lldb) command regex logImageFile 's#(.+) (.+)#expr (int) puts("[ (id)UIImagePNGRepresentation(%1) writeToFile: @\"https://stackoverflow.com/users/myUsername/Desktop/tempImages/%2.png\" atomically: YES ]")#' 
(lldb) logImageFile fooImage barFile 
(int) $1 = 10 
[ (id)UIImagePNGRepresentation(fooImage) writeToFile: @"https://stackoverflow.com/users/myUsername/Desktop/tempImages/barFile.png" atomically: YES ] 

는 나는 (편리 변수 $1에 할당)이 인쇄되도록 리턴 유형이 여기에 (int)였습니다 expr 이야기 -하지만 당신은 (void)을 사용 더라면, 그것은 아무것도 인쇄 피할 수 있었을 것이다.

설정하려고하는 실제 호출 대신 여기 puts()을 사용하고 있습니다. 그러나 원래 정규 표현식 명령 별칭으로 문제를 발견했다고 생각합니다. 이것을 시도하십시오.

+0

이러한 쉬운 해결책은 얼마나 오래이 문제를 해결하려고 노력했는지 알 수 없습니다. –

관련 문제