Количество NSMutableArray всегда возвращает нуль

В build.gradle defaultConfig добавить multiDexEnabled true

7
задан John Biesnecker 11 March 2009 в 08:09
поделиться

3 ответа

Мое предположение, судящее по коду, который Вы отправили, то, что Вы, вероятно, не выделяете свой массив правильно. При создании объектов необходимо инициализировать их также. Поэтому это:

Kana *htemp = [Kana alloc];

Должен быть:

Kata *temp = [[Kana alloc] init];

Все объекты должны быть инициализированы этот путь. Таким образом, если я корректен, и Вы не инициализировали свой массив, затем Ваше создание должно пойти от этого:

NSMutableArray *hiragana = [NSMutableArray alloc];

к этому:

NSMutableArray *hiragana = [[NSMutableArray alloc] init];

По причинам оптимизации необходимо, вероятно, также указать начальную способность также, если у Вас есть какая-либо идея, сколько объектов Вы могли бы держать:

[[NSMutableArray alloc] initWithCapacity:someNumber];
39
ответ дан 6 December 2019 в 05:01
поделиться

Другая частая причина (не в Вашем случае, как оказалось, но обычно) забывает даже выделять массив. Если Вы еще не создали массив, Вы отправляете это count сообщение к nil, таким образом, результат всегда будет 0.

2
ответ дан 6 December 2019 в 05:01
поделиться

Несколько вещей:

  1. Что происходит, если Вы вставляете вызов NSLog цикла с условием продолжения? Проверьте, что повторения цикла на самом деле происходят прежде, чем возложить ответственность за него на массив.
  2. Где Вы создаете массив hiragana? Если Вы делаете его неправильно по некоторым причинам, и массив является нолем, это могло бы вызвать проблемы как это.
  3. Если у Вас нет сборки "мусора" на, несомненно, сделают [htemp выпуск] после добавления его к циклу. addObject сохраняет, и каждый добавленный объект просочится из цикла. Снова, это только релевантно, если сборка "мусора" выключена.

Наиболее вероятно, что или Вы не создаетесь, массив правильно или RS не содержат то, что Вы ожидаете, что это будет содержать, и таким образом [RS затем] не станет названным никогда (если бы RS является нолем, например, никакие повторения этого цикла не выполнились бы, и у Вас не было бы вида ошибки).

0
ответ дан 6 December 2019 в 05:01
поделиться