Массивы отображаются в отладчике Xcode 4 как пустые, даже если они не - PullRequest
4 голосов
/ 27 августа 2011

У меня были некоторые проблемы с отладкой некоторого кода, поэтому я написал этот небольшой фрагмент, чтобы проверить его:

NSMutableArray *output = [NSMutableArray array];
while (true) {
    NSMutableArray *input = [NSMutableArray array];
    for (int i = 0; i < 30; i++) {
        [input addObject:[NSNumber numberWithInt:i]];
    }
    [output addObject:[NSArray arrayWithArray:input]];
    NSLog(@"%@, %@", input, output);
}

Я поставил точку останова на линии с NSLog и обнаружил некоторые интересные вещи. Зайдя в представление переменных, я открыл ввод, и он правильно показал, что он заполнен объектами NSNumber. Затем я открыл вывод, который правильно показал, как содержащий один массив. Однако при расширении этого массива он оказался пустым.

NSLog, однако, показал другую историю. Он правильно отображал многомерный выходной массив как содержащий массивы, заполненные NSNumbers. Не работают ли многомерные массивы с предварительным просмотром переменных в отладчике? Вот изображение проблемы:

enter image description here

Я совершенно сбит с толку этим. У кого-нибудь еще есть такая проблема?

1 Ответ

3 голосов
/ 27 августа 2011

Я подал отчет об ошибке в Apple для нескольких версий XCode и еще в дни Project Builder. Это всегда сообщалось как дубликат. Очевидно, что это известная ошибка, но она имеет низкий приоритет или ее очень трудно исправить.

Та же проблема существует и с другими классами контейнеров, такими как NSDictionary и NSSet, поэтому она не относится только к NSArray.

Я предлагаю вам также подать отчет на http://bugreport.apple.com, чтобы оказать большее давление на проблему. И в то же время полагайтесь на po или NSLog для большинства потребностей отладки классов контейнеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...