Tentando traçar um mapa usando LAT, LNG para um sqlite DB, mas não posso conseguir meu local antes de o mapa empates. Uggg!
Pergunta
O que posso fazer: Tome um DB sqlite de 100 pontos lat e lng e soltar os pinos em um mapa. Parece ótimo!
O que eu gostaria de fazer é começar a minha localização, antes de eu tirar meu mapa. Mas parece que:
- (void) locationManager: (CLLocationManager *) gerente didUpdateToLocation: (CLLocation *) newLocation fromLocation: (CLLocation *) oldLocation
dispara sempre fora depois (void) viewDidLoad corridas. Não importa onde eu inseri-lo.
O que eu preciso fazer é ter uma tela de abertura, pára por aí até eu conseguir um local, o uso que lat e lng para procurar o meu DB sqlite de locais dentro tantas milhas de mim.
Aqui o meu traço:
Entrando - [RootViewController initWithTabBar]
Entrando - [RootViewController viewDidLoad]
Entrando - [RootViewController locationManager: didUpdateToLocation: fromLocation:]
E aqui está o que eu realmente quero:
Entrando - [RootViewController initWithTabBar]
Entrando - [RootViewController locationManager: didUpdateToLocation: fromLocation:]
Entrando - [RootViewController viewDidLoad]
Agora eu estou pensando (trabalhando com um tabbarcontroller), que de alguma forma eu tenho que empurrar este todo o caminho de volta para meu delegado aplicativo? Congelar o aplicativo inteiro até eu conseguir um local? Isso é meus últimos pensamentos.
Obrigado por todas as dicas, leads, trechos ... !!! Eu estive procurando por dias, sem sorte em tudo.
graças !!!!
Solução
Você definitivamente não quer "congelar" o aplicativo, e você definitivamente quer fazer tão pouco trabalho no método applicationDidFinishLaunching:
do delegado do aplicativo possível. O que eu poderia recomendar:
- Tem dois pontos de vista: um é o ponto de vista "real" com o mapa, (presumivelmente) controlado por algum controlador de vista. O outro é apenas um simples "espera" vista com uma mensagem para o usuário e uma
UIActivityIndicatorView
, ou algo parecido. - Quando seu lançamentos de aplicativos, carregar e exibir a visualização de espera na janela do aplicativo, e pontapé de saída do gerente de locação para encontrar a localização atual do usuário.
- Quando você tem o suficiente informações de localização, coloque o ponto de vista real, adicioná-lo para a janela, e remover o ponto de vista de espera. (Talvez com uma animação ou algo cross-fade agradável.)
Você também pode adicionar ambas as visões, e basta virar suas propriedades hidden
no momento certo. Mas o ponto é dar ao usuário algo para olhar, enquanto não tentando lutar contra a natureza inerentemente assíncrona de Core Location.