/ / NSXMLParser: como esperar até o carregamento terminar? - toque de cacau, ios

NSXMLParser: como posso esperar até o carregamento terminar? - toque de cacau, ios

Digamos que estou usando o NSXMLParser para carregar um nível(armazenado como um documento XML, obviamente) no meu jogo para iPhone. O NSXMLParser funciona atribuindo um delegado e enviando mensagens em momentos importantes. Como garantir que meu nível inteiro seja carregado antes de fazer qualquer outra coisa? Eu sei que posso fazer da minha classe principal o delegado e implementar o parserDidEndDocument, mas isso parece muito hacky. Minha classe principal não precisa saber nada sobre a maneira como a análise é feita! Por outro lado, se eu fizer uma classe / delegada separada para analisar meu nível, minha classe principal não terá como saber quando a análise for concluída, a menos que consulte a classe de análise continuamente ou a classe de análise envie uma mensagem.De qualquer forma, a classe principal estaria vinculada à implementação da classe de análise.

Posso ocultar todo esse negócio orientado a eventos?a classe principal e simplesmente fazer com que o analisador retorne o objeto de nível quando terminar? ) No momento, estou usando um analisador DOM externo, mas estou curioso para saber como isso seria feito com o NSXMLParser.

Desculpe se esta é uma pergunta estúpida - sou um pouco novo nisso!

EDITAR: De acordo com a referência da classe NSXMLParser, o método de análise, que "inicia a operação de análise orientada a eventos", retorna YES se for bem-sucedido e NÃO se houver um erro. Isso significa que ele retornará somente após a conclusão da análise? resolver meu problema, pois eu assumi que a análise continuava mesmo após o retorno do método de análise.

Respostas:

1 para resposta № 1

O NSXMLParser bloqueia até que a análise seja concluída. Você não precisa fazer nada porque o nível será carregado após o retorno do método de análise.