Максимальный размер, который может распечатать NSLog

Я пытался напечатать массив словарей. Словарь содержит 300 ключей и их значений. В массиве около 6000 словарей. Но NSLog мог печатать массив, когда количество словарей в нем было меньше 3300. Когда я пытался добавить больше словарей в массив (> 3300), массив не печатался. Я становился пустым в консоли xcode. Есть ли определенный предел, до которого NSLog может печатать значения?


person triandicAnt    schedule 24.06.2013    source источник
comment
не могли бы вы добавить свой код, пожалуйста, я не думаю, что это проблема nslog.   -  person rezand    schedule 24.06.2013
comment
NSLog — это просто добавленная форма printf, поэтому я думаю, что он может хранить столько же, сколько printf. Это зависит от доступной памяти...   -  person Anoop Vaidya    schedule 24.06.2013
comment
Существуют практические, если не указанные, ограничения. Вам нужно как-то разбить ваш запрос на более мелкие единицы. (По крайней мере, вы можете потратить много времени, просто ожидая, пока NSLog отформатирует и распечатает данные, прежде чем вы сможете начать их просмотр. Если разбить на более мелкие части, вы сможете просмотреть их раньше.)   -  person Hot Licks    schedule 24.06.2013
comment
В дополнение к тому, что сказал Hot Licks, должно быть достаточно просто перечислить массив с помощью цикла for и вызвать NSLog() для каждого отдельного объекта словаря.   -  person Jay Wardell    schedule 25.06.2013
comment
Я могу печатать отдельные объекты словаря. однако, если вы пытаетесь напечатать весь массив... это занимает значительное время.   -  person triandicAnt    schedule 25.06.2013


Ответы (1)


NSLog печатает 1022 символа

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

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
person Add080bbA    schedule 08.03.2017
comment
Есть ли быстрая версия этого? - person Nathan F.; 15.11.2017