Где мой выход NSLog?

Я только начал изучать развитие iOS. Я использую в моем коде несколько операторов NSLog, но они нигде не выводятся. Мое приложение использует конфигурацию отладки, и я запускаю свое приложение в симуляторе iPhone из Xcode. Я проверил как консоль Xcode (в меню Run), так и Console.app на моем Mac, но там ничего.

В чем может быть проблема?

Ответы

Ответ 1

Перемещено из комментария

Вы уверены, что строка с NSLog выполнена? Попробуйте вставить NSLog сразу после размещения пула автораспределений в main.m

Ответ 2

Убедитесь, что ваш Console активирован. Для этого вы можете:

  • Перейдите в Вид > Область отладки > Активировать консоль (из панели меню)
  • Или нажмите C на клавиатуре

Ответ 3

NSLog() вывод на симуляторе действительно отображается в приложении Mac OS X консоли.

Перейдите к All Messages, а затем отфильтруйте по имени вашего приложения, чтобы избавиться от пуха и снова запустите. Вы увидите его в своем выпуске, если код NSLog на самом деле попадает во время выполнения вашей программы.

Ответ 4

Используйте NSLog() следующим образом:

NSLog(@"The code runs through here!");

Или как это - с заполнителями:

float aFloat = 5.34245;
NSLog(@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat);

В NSLog() вы можете использовать его как + (id)stringWithFormat:(NSString *)format, ...

float aFloat = 5.34245;
NSString *aString = [NSString stringWithFormat:@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat];

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

float aFloat = 5.34245;
int aInteger = 3;
NSString *aString = @"A string";
NSLog(@"This is my float: %f \n\nAnd here is my integer: %i \n\nAnd finally my string: %@", aFloat, aInteger, aString);

Ответ 5

Действительно странно. Просто ради эксперимента: попробуйте перенаправить вывод NSLog в некоторый файл следующим образом:

freopen ("/out","w", stderr);
NSLog(@"1234567890");

Если есть выход, то с вашим stderr что-то не так.