Какой безопасный способ проверить ответ протокола - PullRequest
2 голосов
/ 19 мая 2010

Вот сценарий:

Контроллер представления помещает новый контроллер в контроллер nav. Этот дочерний контроллер создает модель, которая использует NSURLConnection. Когда это соединение завершится, оно выполнит вызов, подобный следующему:

[self.delegate modelDidFinishParsing:self];

Каков безопасный способ создания этого кода? Прямо сейчас у меня есть этот код, и он падает в определенной ситуации:

if ([self.delegate conformsToProtocol:@protocol(ModelDelegate)]) [self.delegate modelDidFinishParsing:self];

Ситуация, когда происходит сбой, - это когда контроллер представления, которому принадлежит модель, извлекается из стека до завершения модели. Должен ли я сделать модель иваром, чтобы контроллер выпустил ее в своем собственном - (void)dealloc?

1 Ответ

1 голос
/ 19 мая 2010

В вашем чеке вы можете убедиться, что делегат не nil

if (self.delegate && [self.delegate conformsToProtocol...]) [self.delegate modelDidFinishParsing:self];
...