Viewcontroller Dealloc 方法永远不会被调用
Viewcontroller Dealloc Method Never Gets Called
我知道有很多这样的问题。我都读了。我的问题很简单。
我从 xcode 文件 > 新项目 > 单视图应用创建了一个单视图应用。
然后我在故事板中添加了第二个 uiviewcontroller 和一个名为 secondViewController 的新 viewcontroller class。我将一个按钮拖到 main viewcontroller 并通过 ctrl+drag 拖到故事板上的 secondViewController。我在 secondViewController 中做了相反的操作。并且刚刚将带有 nslog 的 dealloc 函数添加到 class 文件中。我还添加了对 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");
}
第二ViewController.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。在工具分配屏幕中,每次切换时内存都会增加。
我找不到什么问题?
dealloc 当对象(这里是它的 viewcontroller 对象)从 memory.But 滑出时调用,在你的情况下,你必须从另一个呈现视图控制器,导致只调用 viewwilldisappear 和 diddisappear。
在故事板中,如果你想从内存中完全删除那些视图控制器,你应该调用 unwind segue
我知道有很多这样的问题。我都读了。我的问题很简单。
我从 xcode 文件 > 新项目 > 单视图应用创建了一个单视图应用。 然后我在故事板中添加了第二个 uiviewcontroller 和一个名为 secondViewController 的新 viewcontroller class。我将一个按钮拖到 main viewcontroller 并通过 ctrl+drag 拖到故事板上的 secondViewController。我在 secondViewController 中做了相反的操作。并且刚刚将带有 nslog 的 dealloc 函数添加到 class 文件中。我还添加了对 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");
}
第二ViewController.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。在工具分配屏幕中,每次切换时内存都会增加。
我找不到什么问题?
dealloc 当对象(这里是它的 viewcontroller 对象)从 memory.But 滑出时调用,在你的情况下,你必须从另一个呈现视图控制器,导致只调用 viewwilldisappear 和 diddisappear。
在故事板中,如果你想从内存中完全删除那些视图控制器,你应该调用 unwind segue