Viewcontroller Dealloc方法永远不会被调用

时间:2015-05-19 16:57:07

标签: ios objective-c viewcontroller dealloc

我知道有很多这样的问题。我读了全部。我的问题很简单。

我从xcode文件>新项目>单一视图应用创建了一个视图应用。 然后我在storyboard中添加了第二个uiviewcontroller和一个名为secondViewController的新viewcontroller类。我将一个按钮拖到主视图控制器上,然后通过ctrl +拖动到storyboard上的secondViewController。我在secondViewController中做了反向。并且刚刚将带有nslog的dealloc functins添加到类文件中。我还添加了对uibuttons的弱引用

当视图发生变化时,每个viewcontroller的Dealloc方法永远不会被调用。

ViewController.m

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"viewDidLoad 1");
        // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    NSLog(@"dealloc 1");
}

SeconViewController.m

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    NSLog(@"dealloc 2");

}
@end

启用ARC。

僵尸似乎在产品>编辑方案上被禁用。我正在使用xcode 6.2。在乐器分配中,每个切换时屏幕内存都会上升。

问题是什么,我找不到?

1 个答案:

答案 0 :(得分:1)

当对象(这里是它的viewcontroller对象)从内存中滑出时,

dealloc调用。但在这种情况下,你必须相互呈现视图控制器,这些视图控制器只能调用viewwilldisappear并且会消失。

在故事板中,如果要完全从内存中删除这些视图控制器,则应调用unwind segue