У вас есть бесконечный цикл, потому что цикл начинает проходить тест (r == 1 && 1> = 0), и с этой точки r никогда не меняется.Вы просто берете объект в r (1) и вставляете его в r (1), а затем увеличиваете r (r == 2).Наконец, цикл заканчивается, r уменьшается (r == 1), и вы снова запускаете тест (1> = 0), поэтому он запускает цикл, и происходит точно такая же вещь.
Возможно, вы захотите вставитьtemp при следующем индексе (r + 1), но это вызовет сбой, так как ваш массив имеет только 2 места.Вам нужно будет сделать addObject: чтобы увеличить размер массива (и в этом случае вставить элемент в r + 1).