不允许在取消分配时尝试加载视图控制器的视图,并且可能导致未定义的行为

时间:2016-02-19 02:31:09

标签: ios objective-c iphone uiviewcontroller

  

不允许在取消分配时尝试加载视图控制器的视图,并且可能导致未定义的行为

此警告只出现一次。我在基地中分配UIAlertView

viewController's viewDidLoad`self.alertView = [[UIAlertView alloc] initWithTitle.....`,

 `- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    self.alertView = nil;
}`

viewController A和viewController B继承自基础viewController。

当这个viewController A推送到viewController B时出现警告,但是B弹出A和A再次推送到B,此警告不会出现。

当我使用模拟器(iOS 9.2)时,会出现警告,但是当我使用iPhone(iOS 8.2)时,它不会出现。

3 个答案:

答案 0 :(得分:2)

不要在viewDidLoad中分配init alertView,在使用时分配alertView;

答案 1 :(得分:0)

不需要在ARC中释放属性。如果您有特殊需求,请在viewWillDisappear中执行此操作。

答案 2 :(得分:0)

如果我理解你在Base类中定义警报并且只需要在A:Base中显示它,而不是在B:Base中显示它。如果是这样的代码:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:(BOOL)animated];
    if ([self isKindOfClass[A class]]) {
        [self presentViewController:self.alert animated:YES completion:nil]; 
    }
}