Если вы хотите, чтобы ваш NSLog работал только тогда, когда вы отлаживаете , и вы не хотите вносить какие-либо изменения в свой код, лучше всего сделать это в вашем файле .pch:
#ifndef DEBUG
#define NSLog(x...)
#endif
ОБЪЯСНЕНИЕ И УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ:
Это означает, что если DEBUG не определен, он "переопределит" все NSLogs, чтобы ничего не делать, эту строку заменитьпроисходит перед компиляцией, поэтому ни один NSLog во всем коде не выйдет, ни один NSLog не останется на производстве по ошибке, это устраняет человеческую ошибку - забывание удалять NSLogs в производственных приложениях.
Обычно отладка определяется в отладкережим по умолчанию во всех проектах Xcode.Вы можете узнать, определен ли он по адресу:
Build Settings ->
Apple LLV #.# - Preprocessing ->
Preprocessor Macros -> Debug
, если его там нет, добавьте
DEBUG=1
также, если у вас нет файла pch или он не подключен, вотчто вам нужно сделать (потому что он был автоматически добавлен в xcode 5, но больше не добавляется в xcode 6 и выше по умолчанию в новых шаблонах проектов)
Почему не ProjectName-Prefix.pchавтоматически создается в Xcode 6?