Хорошо, как я уже говорил, вы никогда не должны выполнять сложные вычисления в своем основном потоке. Это не только приводит к таким ситуациям, как ваша, ваше приложение также может быть отклонено из магазина.
Теперь, причина того, что UIActivityIndicatorView не обновляется, заключается в том, что пользовательский интерфейс фактически не обновляет себя, например. когда вы звоните [calcActivity startAnimating];
, он обновляется после того, как ваш код прошел. В вашем случае это означает, что startAnimating
и stopAnimating
вызывают сразу, поэтому ничего не происходит.
Итак, «простое» решение: создайте новый поток, используя эту технику или, возможно, лучше GCD .