2013-09-03 4 views
0

Я пытаюсь написать псевдоним lldb, который записывает изображение в файл. Следующие работы, но есть проблема:lldb regex, который содержит путь к файлу

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

Проблема в том, что я должен вводить полный путь каждый раз. Было бы намного лучше иметь каталог, который он всегда использует. Так что я попытался это:

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

Теперь, когда я ввожу что-то вроде следующего в консоли Xcode, lldb всегда говорит, что logImageFile не правильная команда.

logImageFile fooImage barFile 

Проблема, скорее всего, косые черты внутри пути. Я предполагаю, что мне нужно как-то сбежать от них, но как? Обратите внимание, что у меня есть NSString внутри lgeb regex, но я не знаю, какой вкус регулярного выражения на самом деле.

ответ

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 ] 

expr Я сказал, что возвращаемый тип был (int) вот так печатает, что (назначение его удобство переменной $1) - но если бы вы использовали (void), это позволило бы избежать ничего печати.

Здесь я использую puts() вместо реального вызова, который вы пытаетесь настроить, но я думаю, что я обнаружил проблему с вашим первоначальным псевдонимом командной строки регулярного выражения. Попробуй.

+0

Такое легкое решение, я не знаю, как долго я пытался обойти это. –

Смежные вопросы