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 ("?")