Objetivo-c: saber se a localização da memória foi desalocada

Eu implementei um downloader para projetos iOS. Ele aceita solicitações e, quando o download é concluído, responde a um destino por um delegado. É assíncrono e o alvo é (obviamente) uma referência fraca, então quando o download estiver completo, se o alvo não estiver mais alocado, eu tenho um bad_acces. Resolvi adicionar um método (chamado quando um objeto que o usa é desalocado) que procura o destino em todas as solicitações e o define como nulo. Isso está tão longe do comportamento que eu queria (completamente independente de outros objetos: se um download não for mais solicitado, ele será armazenado em cache: não tem nenhum método para parar o download, mas apenas uma fila de prioridade). Há uma maneira segura de saber se um ponteiro ainda aponta para um endereço de memória válido?

questionAnswers(3)

yourAnswerToTheQuestion