//
// ViewController.m
// 06-UIView的常见属性
//
#import "ViewController.h"
@interface ViewController ()
// 绿色的view
@property (weak, nonatomic) IBOutlet UIView *greenView;
/** 数组 */
@property (nonatomic, strong) NSMutableArray *dataArr;
@end
@implementation ViewController
- (void)loadView{ //加载控制器
[super loadView];
NSLog(@"%s", __func__);
}
/**
1. 系统调用
2. 控制器的view加载完毕的时候调用
3. 控件的初始化,数据的初始化(懒加载)
*/
- (void)viewDidLoad {
[super viewDidLoad];
// 1.1 查看绿色的view的父控件,self是控制器,
NSLog(@"绿色的view的父控件:%@----控制器的view:%@", self.greenView.superview, self.view);//UIView
// 1.2 查看绿色的view的子控件
NSLog(@"%@", self.greenView.subviews);//UIButton,UILabel
// 1.3 控制器的view的子控件
NSLog(@"%@", self.view.subviews);//UILabel,UIButton,UIView
// 1.4 控制器的view的父控件 --> UIWindow
NSLog(@"viewDidLoad-----%@", self.view.superview);//null
}
- (void)viewDidAppear:(BOOL)animated{ //view已经出现
[super viewDidAppear:animated];
NSLog(@"viewDidAppear-----%@", self.view.superview);//UIWindow
}
/**
1. 系统调用
2. 当控制器接收到内存警告调用
3. 去除一些不必要的内存,去除耗时的内存
*/
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
self.dataArr = nil;
}
/**
* 模拟内存警告--->不断增加内存
*/
- (void)test{
NSMutableArray *arr = [NSMutableArray array];
for (int i=0; i<100000000; i++) {
UILabel *label = [[UILabel alloc] init];
[arr addObject:label];
}
self.dataArr = arr;
}
@end
![]()