Pergunta

Estou carregar um monte de arquivos do iPhone para um serviço web. Eu quero ter um UIAlertView na tela com uma dentro UIActivityIndicatorView. Eu tenho que, para funcionar bem. No entanto, eu quero atualizar o título do UIAlertView como cada arquivo fica carregado. ( "Enviando arquivo 1 ...", "Enviando arquivo 2 ...", etc).

Eu sei que você não pode apenas definir o título em um loop com pedidos web síncronos como o loop UI prazo nunca será chamado. Eu tentei usar NSTimer para disparar os pedidos da web, mas uma vez que cada duração pedido é imprevisível, que não funciona. (A mensagem pode atualizar antes do pedido é realmente acabado.)

Eu realmente quero fazer upload de cada arquivo de forma síncrona, um de cada vez, como a largura de banda iPhone é bastante limitada. Eu só não consigo descobrir um mecanismo para dizer 'uma vez que este síncronos acabamentos de operação, deixe a atualização UI por um carrapato, em seguida, fazer outra operação síncrona.'

Foi útil?

Solução

OK aqui é a abordagem que tomou para resolver este:

  1. Crie o UIAlertView
  2. Inicie uma solicitação da web assíncrona para postar o item, definir o delegado para auto
  3. No connectionDidFinishLoading: método, verificar para ver se há mais artigos para postar. Se houver, atualizar o título e começar outra solicitação assíncrona. Se não, descartar o alerta.

Isso significa que você tem que manter algumas variáveis ??de classe para controlar quais pedido é upload, mas funciona perfeitamente e não envolve qualquer segmentação complicado ou qualquer outra coisa.

Outras dicas

se você tentar isso?

alertView.title = @"new title";
[alertView setNeedsDisplay];
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top