Можно ли как-нибудь увидеть журналы консоли приложения, работающего в симуляторе iOS, когда я не запускаю код через XCode? Я прямо открываю приложение из симулятора. Можно ли где-нибудь печатать операторы NSLog?
Да. Вот цитата из Tools Workflow Guide для iOS :
При запуске приложения в симуляторе вы можете получить доступ к консоли приложения. входит в консольное приложение (находится в /Applications/Utilities).
/Applications/Utilities
От BYU CocoaHeads :
Перенаправлено NSLog() Иногда вам может понадобиться перенаправить вывод NSLog() в файл, чтобы вам было удобнее его просматривать. NSLog() работает путем вывода сообщений на STDERR, поэтому все, что вам нужно сделать, это перенаправить поток STDERR в файл, и все готово. Следующий код перенаправит его в файл на вашем рабочем столе: int fd = creat("/Users/dave/Desktop/my_log", S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); close(STDERR_FILENO); dup(fd); close(fd); NSLog(@"this will be written to my_log"); Это повлияет только на NSLog() звонки из вашего приложения.
Перенаправлено NSLog()
NSLog()
Иногда вам может понадобиться перенаправить вывод NSLog() в файл, чтобы вам было удобнее его просматривать. NSLog() работает путем вывода сообщений на STDERR, поэтому все, что вам нужно сделать, это перенаправить поток STDERR в файл, и все готово. Следующий код перенаправит его в файл на вашем рабочем столе:
STDERR
int fd = creat("/Users/dave/Desktop/my_log", S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); close(STDERR_FILENO); dup(fd); close(fd); NSLog(@"this will be written to my_log");
Это повлияет только на NSLog() звонки из вашего приложения.
Мне удалось увидеть журналы в приложении «Консоль» в MAC OS.