- 使用ARC
- 我有5个独立的视图控制器,它们都是我创建的一个类,它被称为“UIViewControllerWithLoadingView”,它是UIViewController的子类。
- 在子类和超类中,我分配和释放属性,如下所示:
@property (strong, nonatomic) NSURLConnection *urlConnection;
- (void)viewDidUnload
{
[super viewDidUnload];
self.urlConnection=nil;
}
- 当调用didReceiveMemoryWarning时,子类viewDidUnload方法可以正常工作。 BBBUUTTT如果我在超类UIViewControllerWithLoadingView中将属性设置为nil,应用程序将崩溃。特别是在我将子类的属性设置为nil的地方。所以现在我只是不在超类中将属性设置为nil,这会产生问题,因为实时字节只是在运行时堆积起来。
答案 0 :(得分:0)
经验法则是“清理”的方法 - 比如dealloc或viewDidUnload - 应该在执行其他操作后调用super。 (以及“设置”的方法 - 比如init - 调用超级优先。)我不知道这是你的问题,如果没有看到你所有的子类实现,但这将是一个开始的地方。
答案 1 :(得分:0)
问题在于超类我有一个视图,扩展了uiview,它具有对viewcontroller的属性引用。在dealloc中自动调用dealloc,因此dealloc实际上会将viewcontroller本身设置为nil导致崩溃。一旦我删除了自定义视图类中viewcontroller的属性,就不再出现问题了