这是一个场景:

视图控制器将新的控制器推送到导航控制器。该子控制器创建一个使用NSURLConnection的模型。连接完成后,将进行如下呼叫:

[self.delegate modelDidFinishParsing:self];


产生此代码的安全方法是什么?现在,我有了这段代码,它在某些情况下崩溃了:

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


当模型崩溃时,拥有模型的视图控制器会在模型完成之前从堆栈中弹出。我应该将模型设为一个ivar,以便控制器在其自己的- (void)dealloc中释放它吗?

最佳答案

在检查中,您可以确保委托人不是nil

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

关于iphone - 什么是检查协议(protocol)响应的安全方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2862199/

10-14 22:52
查看更多