Xcode 8 Не отображает весь вывод NSLog

После обновления до Xcode 8 GM сегодня я заметил, что NSLog не печатает на консоли все сообщения журнала. Это особенно заметно при работе с API, который загружает много информации, например, REST API загружает все продукты из базы данных, он отображает только первые 30 ключей на первом продукте, остальная информация обрезается …

Я печатаю массивы и словари, если это имеет значение.

NSDictionary *allProducts = responseFromAPI; NSLog(@"All products:%@", allProducts); 

Кто-нибудь еще заметил это? И кто-нибудь знает, как это исправить?

Как пояснил @Lion в своем комментарии, самым простым способом является использование printf. Он не работает точно так же, как NSLog, но показывает, что вы хотите.

 NSDictionary *allProducts = responseFromAPI; NSString * string = [NSString stringWithFormat: @"%@", allProducts]; printf("%s", [string UTF8String]); 

или короче:

 NSDictionary *allProducts = responseFromAPI; printf("%s", [NSString stringWithFormat: @"%@", allProducts].UTF8String); 

Совет должен поместить «\ n» в начале или в конце формата printf, чтобы он отделял выходы и не помещал их в одну строку. Что-то вроде этого:

 printf("%s\n", string.UTF8String); 

Если вам не нравится писать printf, а каждый раз, когда вы можете использовать #define для перенаправления кода на printf, как это (код из @xfdai):

 #define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); 

Надеюсь, это просто ошибка от Apple, которая скоро будет исправлена, пока мы не сможем это использовать.

Вы можете использовать этот метод. Разделить каждые 800 символов. Или может быть установлен. NSLOG Я думаю, что урезать каждые 1000 символов. Если строка меньше 800 будет использовать простой NSLog . Это полезно для длинных строк Json и использует консоль. printf использует окно отладки Xcode, а не консоль.

 -(void) JSLog:(NSString*)logString{ int stepLog = 800; NSInteger strLen = [@([logString length]) integerValue]; NSInteger countInt = strLen / stepLog; if (strLen > stepLog) { for (int i=1; i <= countInt; i++) { NSString *character = [logString substringWithRange:NSMakeRange((i*stepLog)-stepLog, stepLog)]; NSLog(@"%@", character); } NSString *character = [logString substringWithRange:NSMakeRange((countInt*stepLog), strLen-(countInt*stepLog))]; NSLog(@"%@", character); } else { NSLog(@"%@", logString); } } 
  • Идентификация дайджеста HTTPURLSession с помощью HA1 (а не пароля)
  • Название UIButton после скрытого = НЕТ
  • Поверните UIlabel, чтобы сделать его вертикальным
  • Как создать плагин Unity3d для iOS
  • Как использовать NSRange с этим NSString?
  • Ошибка XCode clang с кодом выхода 254
  • Что делать с приложениями, запущенными на iOS 5 и ниже для идентификатораForVender
  • Как управлять / скрывать действие ярлыка в UITextView
  • UITextView scrollEnabled = YES не работает после установки scrollEnabled = НЕТ в iOS8
  • iOS: предупреждение "попытка представить ViewController, чей вид не находится в иерархии окон"
  • Уникальная идентификация устройства iOS для iOS 7.0 и выше
  • Interesting Posts

    Повторное добавление аннотаций на просмотр карты для обновления названия

    Локализация Xcode: синхронизировать трансляцию с раскадровки

    Заполнить цветную анимацию Мерцание при вызове блока в анимации остановилось

    Невозможно работать с повторно используемыми ячейками. Как оптимизировать гладкую прокрутку в tableView?

    Должен ли я отклонять MFMessageComposeViewController в методе делегирования didFinishWithResult?

    Как извлечь файл PDF с устройства, чтобы загрузить его из моего приложения?

    Мой первый контроллер представления xcode не действует, как другие. Зачем?

    Почему я продолжаю получать эту ошибку для моего моста Header в Xcode 7: Bridging Header не exsist?

    Какой вид на iPad

    Цвет тени UICollectionViewCell

    Развертывание и тестирование приложения на устройстве

    SFHFKeychainUtils «забыл» пароли моего пользователя

    Создание текста жирным шрифтом с использованием атрибутной строки в swift

    iOS: Исключение исключений в фоновом режиме не сбой

    iOS: получить все даты на текущей неделе

    Давайте будем гением компьютера.