NSArray initWithObjects: не загружается - PullRequest
5 голосов
/ 27 марта 2009

В качестве теста я делаю следующее в качестве первой строки в applicationDidFinishLaunching:

NSArray *list=[[NSArray alloc] initWithObjects:@"Andy",@"Erik",@"Aaron",nil];

После запуска строки у меня в массиве нет объектов. Я делаю это дальше по пути кода, но хотел устранить любое влияние, чтобы убедиться, что мой синтаксис правильный. Я получаю те же результаты с NSMutableArray. В отладчике я наведите курсор на имя массива, чтобы посмотреть, есть ли у него какие-либо значения.

При наведении указателя мыши на количество в следующей строке я вижу «varaible optimized awa ... Summary»:

int count = [list count];

Есть предложения, почему массив не заполняется и почему count не возвращает целое число?

1 Ответ

6 голосов
/ 27 марта 2009

Происходит то, что вы не используете переменную 'count', а компилятор оптимизирует это.

1) Попробуйте запустить в режиме отладки вместо режима выпуска. Режим отладки не оптимизирует содержимое, поэтому вы должны увидеть, как переменная count дает правильный результат при наведении курсора мыши на отладчик. Вы можете изменить активную конфигурацию для отладки от выпуска, нажав на выпадающую панель в верхнем левом углу xcode.

2) Используйте переменную count в вашем коде. Обратите внимание, что в сборке релиза вещи могут происходить не по порядку, если этого хочет компилятор. Например, если у вас где-то есть оператор инициализации счетчика, и вы используете «count» ниже в своем коде, «count» может не быть установлен до тех пор, пока фактически не используется «count».

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