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