Как привязать (перенаправить?) Вывод NSLog к IBOutlet и т. Д.? - PullRequest
1 голос
/ 28 марта 2012

Подумайте о перенаправлении ввода / вывода, как о 2>&1, но не так загадочно / раздражающе ... В основном ... если вы что-то отлаживаете ... Консольные сообщения обратно в IDE не очень полезны.Так что я подумал ... Хорошо, я просто перенаправлю NSLog, стиль stdout.Но как?Я nincompoop в C отделе, но я уверен Вы, нетерпеливые бобры, прыгните с некоторыми простыми #define - или другимиидиосинкразия препроцессора - идеально подходит именно для такого случая.Итак, на фотографиях…

the attempt

Без ошибок.Записывает в консоль AOK, как показано ниже.

Normal LOG, aok

Но, как я и опасался .. Никакого связанного вывода, кроме %@.

No dice in my window

Каким образом я могу просто синтезировать экземпляр IBOutlet NSLog или иным образом перехватить его для дальнейшего злоупотребления и неправильного использования?

∀Ⓛ∃✖

1 Ответ

5 голосов
/ 28 марта 2012

NSLog просто записывает в stderr, поэтому вы можете использовать функцию freopen для записи вывода в файл, как описано здесь:

Запись в файл на iPhone

Как только у вас есть данные в файле, вы можете прочитать из этого файла и поместить результаты в представление.

Если вы хотите больше представления в режиме реального времени, чем может опросить файлпредставьте, вы можете перенаправить stderr в канал, используя класс NSPipe.Я никогда не пробовал, но эта ссылка может помочь:

http://www.cocoabuilder.com/archive/cocoa/110139-redirect-stderr-to-nstextview.html

...