У меня есть подкласс UITableViewCell с именем AccountView, который содержит UIActivityIndicatorView. Каждая ячейка должна содержать учетную запись Twitter. Когда пользователь отправляет сообщение в Twitter, предполагается, что UIActivityIndicatorView начинает вращаться, а затем прекращает анимацию при выполнении обработчика запроса Twitter:
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error){
if (error != nil) {
NSLog(@"TWITTER ERROR: %@",error);
}
NSLog(@"Posted successfully");
AccountCell *cell = (AccountCell *)[accountTable cellForRowAtIndexPath:[NSIndexPath indexPathForRow:[accounts indexOfObject:account] inSection:0]];
NSLog(@"Cell isSpinning? :%d",[[cell activity] isAnimating]);
[[cell activity] stopAnimating];
NSLog(@"Cell isSpinning? :%d",[[cell activity] isAnimating]);
}];
Все это прекрасно работает при публикации короткого сообщения в Twitter, однако, когда TWRequest содержит изображение для загрузки, через несколько секунд сообщение с изображением появляется в Twitter, и я вижу следующее сообщение в консоли:
2011-12-10 00:13:22.085 TwitTest[14954:1a03] Posted Successfully
2011-12-10 00:13:22.086 TwitTest[14954:1a03] Cell isSpinning? :1
2011-12-10 00:13:22.088 TwitTest[14954:1a03] Cell isSpinning? :0
Но UIActivityIndicatorView продолжает вращаться бесконечно (или, по крайней мере, с задержкой в несколько секунд), даже если в сообщениях журнала указано иное. Тот факт, что это только нарушает загрузку изображений, заставляет меня поверить, что, возможно, мне следует отправить запрос в фоновом потоке, но я никогда раньше не имел дело с потоками и не мог точно сказать, является ли это проблемой.
И последнее: если я перейду к другому представлению и вернусь, UIActivityIndicatorView будет заморожен - если я уйду и вернусь во второй раз, он исчезнет навсегда.