Xcode 4 и Core Data: как включить отладку SQL
Я работаю над универсальным приложением для iOS, и мне хотелось бы видеть необработанный SQL в журналах при отладке. В этом посте есть информация о том, как включить необработанное ведение журнала SQL для разработки iOS Core Data. Данный пример для Xcode 3, и мне просто не ясно, как включить это в Xcode 4.
Я попытался "Product" → "Edit Scheme" и добавил " -com.apple.CoreData.SQLDebug 1 " в "Arguments Passed on Launch", но я все еще не вижу никакого вывода в журналах. Не уверен, что я смотрю не в том месте или просто передаю аргументы неправильно.
Ответы
Ответ 1
Вы должны смотреть на то же место, где вы получаете NSLOGS
И вы должны перейти в Product → Edit Scheme → Затем с левой панели выберите "Запустить YOURAPP.app" и перейдите на вкладку "Основные аргументы" панели.
Там вы можете добавить Аргумент, пройденный на запуск.
Вы должны добавить -com.apple.CoreData.SQLDebug 1
Нажмите OK, и все установлено.
Ключ здесь - отредактировать схему, которую вы будете использовать для тестирования.
Ответ 2
XCode 4
В том же месте я управляю своей NSZombieEnabled
Product → Edit Scheme → Run YouApp.app Debug
В разделе "Аргументы, передаваемые при запуске", вставьте точно:
-com.apple.CoreData.SQLDebug 1
Предупреждение - этот материал очень многословный, если у вас есть проблемы с основными данными, это, возможно, стоит посмотреть, но может быть и больше информации, чем вам нужно о неправильной вещи.
Ответ 3
У меня была проблема с этим, а затем я понял, что это глупое упущение, которое, как я полагаю, является ошибкой для некоторых из вас. Когда я ввел аргумент в Xcode (4.3.1)
, я пропустил начальный дефис. Я бы не сделал этого, если бы вводил его в командной строке, но в графическом интерфейсе я его пропустил. Я не нашел никакой разницы между входом в 2 отдельных аргумента или один (как предлагали некоторые сообщения). Так что используйте:
-com.apple.CoreData.SQLDebug 1
и не просто
com.apple.CoreData.SQLDebug 1
это работало для меня как на симуляторе, так и на реальном устройстве
Ответ 4
Обратите внимание, что вы можете поместить в разные уровни переданного значения. Которые обеспечивают все больше и больше многословия.
-com.apple.CoreData.SQLDebug 1
-com.apple.CoreData.SQLDebug 2
-com.apple.CoreData.SQLDebug 3
-com.apple.CoreData.SQLDebug 4 // This will actually show parameter binds ("?")