Pergunta

Eu tenho um aplicativo simples que conta para baixo a meia-noite e, em seguida, toca um sinal sonoro e outra vez e pisca o rótulo mostrando o tempo. Assim o rótulo intermitente usa um NSTimer, enquanto que o sinal sonoro vai em seu próprio segmento, para que a função C puro (para o som do sistema de retorno de chamada conclusão id) pode usar [NSThread sleepForTimeInterval: ...]; que esperar um pouco entre tocar o som do alarme sonoro. Então eu recebo duas mensagens de erro durante a execução dizendo há nenhuma piscina disparo automático e ele vai vazar. É porque no método que eu chamo em um novo segmento, há dois @ "Strings" que são usados ??para criar o sistema de som ID (o nome do arquivo e extensão). Existe uma maneira que eu não posso usar um pool de disparo automático já que aqueles são as únicas duas coisas que sempre tentam usá-lo. Obrigado.

Ou devo usar duas NSTimers vez de outro segmento ..?

A resposta de Ben Gottlieb estava certo, no entanto, eu decidi usar outra NSTimer vez porque eu esqueci sobre como não é realmente sincronizado com o tempo quando você dorme o fio como a execução efectiva do código antes é preciso um pouco de tempo. E isso torna as coisas simétricos;).

Foi útil?

Solução

Apenas criar um pool de disparo automático em seu método tópico:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

...thread body...

[pool release];

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top