这是一个场景:
视图控制器将新的控制器推送到导航控制器。该子控制器创建一个使用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/