我知道有這樣的問題很多。我讀了所有。我的問題很簡單。Viewcontroller Dealloc方法永遠不會被調用
我從xcode文件>新建項目>單一視圖應用程序創建了單一視圖應用程序。 然後,我在故事板和一個名爲secondViewController的新viewcontroller類中添加了第二個uiviewcontroller。我將一個按鈕拖到主視圖控制器,並通過ctrl +拖動到故事板上的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。在樂器分配屏幕中,每次切換都會增加內存。
什麼問題,我找不到?
當視圖控制器駁回了視圖控制器的dealloc只調用。所以你的主視圖控制器永遠不會被釋放。如果你有兩個視圖控制器,那麼你沒有一個單一的視圖應用程序。如果你有按鈕和兩個視圖控制器,你怎麼能不碰初始代碼?提供相關細節或者沒有人可以幫助你。 – rmaddy
很好,但問題是什麼?如果你離開這個視圖控制器(彈出它,或解散它),並且它的dealloc沒有被調用,你有一個保留週期和內存泄漏,你需要修復它。如果你不願意談論具體的代碼,你期望在這裏得到什麼樣的幫助? – matt
對不起,我會盡我所能。我編輯了這個問題。 @rmaddy –