这是一个场景:
视图控制器将新控制器推送到导航控制器。此子控制器创建一个使用NSURLConnection的模型。当此连接完成后,它将进行如下调用:
[self.delegate modelDidFinishParsing:self];
生成此代码的安全方法是什么?现在,我有这个代码,它在某种情况下崩溃:
if ([self.delegate conformsToProtocol:@protocol(ModelDelegate)]) [self.delegate modelDidFinishParsing:self];
崩溃的情况是在模型完成之前从堆栈中弹出拥有模型的视图控制器。我应该将模型设为ivar,以便控制器在自己的- (void)dealloc
?
答案 0 :(得分:1)
在您的支票中,您可以确保代表不是nil
if (self.delegate && [self.delegate conformsToProtocol...]) [self.delegate modelDidFinishParsing:self];