Отладка XCode - отображение изображений

Я люблю использовать отладчик Xcode. Вы можете в любое время взглянуть на значения переменной, вы даже можете изменить их.

Проблема возникает, когда вы тестируете изображения, и здесь возникает вопрос:

Могу ли я как-то отобразить изображение, на которое ссылается переменная image? Я знаю, что могу видеть необработанные байты, но было бы гораздо удобнее для человека, если бы всплыло окно с его содержимым.

Xcode может не поддерживать это. Может быть, есть внешний инструмент, который поможет с этим?

70 голосов | спросил krasnyk 6 Maypm10 2010, 15:49:33

6 ответов


0

Используйте Быстрый просмотр для проверки изображений в отладчике Xcode.

Выберите UIImage или NSImage в отладчике, затем щелкните значок «Взгляд» «Быстрый просмотр».

введите описание изображения здесь

Как и в других областях OS X, вы также можете использовать пробел для быстрого просмотра!

Просмотр UIImage в отладчике Xcode с помощью быстрого просмотра

Быстрый просмотр в отладчике также может быть реализован для ваших собственных классов:

">"">> Пользовательские типы

  

Функция быстрого просмотра переменных в отладчике Xcode позволяет получить быструю визуальную оценку состояния переменной объекта с помощью графического рендеринга, отображаемого во всплывающем окне либо в представлении переменных отладчика, либо в исходном коде. .

     

В этой главе описывается, как реализовать метод Quick Look для пользовательских типов классов, чтобы переменные объектов этих типов также визуально отображались в всплывающем окне Quick Look.

ответил pkamb 30 +04002013-10-30T06:14:33+04:00312013bEurope/MoscowWed, 30 Oct 2013 06:14:33 +0400 2013, 06:14:33
0

EDIT:

Начиная с Xcode 5, отладчик может показывать вам визуальное представление переменных UIImage /CGImageRef!

Сам Xcode не может этого сделать. Я не знаю о внешних инструментах.

Что я делаю, чтобы проверить изображения во время отладки, чтобы преобразовать эти необработанные данные в формат файла изображения, например .png, а затем сохранить их где-нибудь, а затем открыть изображение с помощью любого инструмента просмотра изображений.

У меня есть кусок кода для этой цели, который выглядит примерно так:

NSData *imageData = UIImagePNGRepresentation(self.myUIImage);
[imageData writeToURL:desktopURL atomically:YES];

И я просто копирую этот код, где я хочу видеть содержимое изображения на ходу.

Обязательно избавьтесь от этого кода как можно скорее из-за высокой стоимости преобразования UIImage в NSData

ответил Avraham Shukron 20 FebruaryEurope/MoscowbSun, 20 Feb 2011 23:04:59 +0300000000pmSun, 20 Feb 2011 23:04:59 +030011 2011, 23:04:59
0

Изменить для Xcode 5:

Теперь, когда вы наводите курсор на имя переменной изображения, справа будет значок «глаз». Просто нажмите на него, чтобы увидеть текущее изображение! Если у вас нет переменной UIImage (например, это свойство другого объекта, вы все равно можете использовать более старый ответ:

Старый ответ: Старый вопрос, но я искал ответ. Начав с ответа Авраама, я попробовал несколько экспериментов для отображения образа iOS с lldb без необходимости перекомпиляции или добавления его в представление. Я наконец-то придумал:

po [UIImagePNGRepresentation(watchImage) writeToFile:@"/Users/<userName>/Desktop/watchImage.png" atomically:NO];

Я сохраняю эту строку в текстовом редакторе и вставляю ее, когда мне это нужно. Это сохраняет текущее интересующее меня изображение (в данном случае «watchImage») в PNG-файле на рабочем столе. Тогда я могу просто открыть этот файл с помощью предварительного просмотра.

ответил mackworth 31 AM00000050000004231 2013, 05:40:42
0

Если вы хотите работать с консолью lldb, используйте долото команду "визуализировать"

Совет:

после установки вы можете установить условную точку останова после установки UIImage с помощью действия:  "визуализировать myUIImageToShowWithQuickLook"

 введите описание изображения здесь

это покажет вам изображение автоматически, когда отладчик остановится.

ответил Zaster 19 AM000000110000002931 2015, 11:22:29
0

Что делать, если вы не можете добраться до изображения через представление переменных?

Повторяя сказанное @pkamb - вы можете использовать представление переменных для быстрого просмотра изображения. Но что, если вы не можете добраться до изображения?

например, у меня есть изображение в (contentViewController.view.subviews[0].subviews[1] as? UIImageView).image

но если я попытаюсь развернуть contentViewController в представлении переменной, это не откроет мои подпредставления

 введите описание изображения здесь

что вы можете сделать, это щелкнуть правой кнопкой мыши, добавить выражение, и тогда вы сможете его увидеть!

 введите описание изображения здесь

 введите описание изображения здесь

 введите описание изображения здесь

ответил wyu 1 42018vEurope/Moscow11bEurope/MoscowThu, 01 Nov 2018 02:49:02 +0300 2018, 02:49:02
0

Вы можете поставить точку останова в строке вашего изображения, а затем в отладчике просто написать:

po your_UIImage_object

po означает print object, это команда GDB, которая отображает несколько полезных сведений о передаваемом объекте, в вашем случае это изображение.

ответил Malloc 14 PM00000070000001231 2012, 19:48:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132