5.17-5.27日,一共八天,初读这本书一边,总结一下
1.iOS编程,就是客户端编程,主要还是页面的逻辑
2.iOS编程,严格的执行了MVC模式,数据流向有这样几种:
- 本地固化(编码,解码)
- Web数据传输,保存在服务器
- SQLite数据库使用
- NSUserDefaults的使用
3.Application五种状态
- 未运行状态-激活状态-未激活状态-后台运行状态-挂起状态
- 当应用没有运行时,会处在未运行状态(not runningstate),不会执行任何代码,也不会占用RAM。
- 当应用启动后,会进入激活状态(activestate),可以显示界面、接收事件并处理事件。
- 当应用处在激活状态时,可能会被某个系统事件打断,临时进入未激活状态(inactivestate)。这类系统事件包括收到短消息、收到推送、来电或闹钟到点等。发生系统事件时,iOS会显示相应的提示界面并遮住当前应用的部分界面。当应用处于未激活状态时,其大部分界面是可见的(iOS显示的提示界面只会遮住部分窗口),也可以执行代码,但是不会接收事件。通常情况下,应用只会在未激活状态停留很短的时间。按下位于iOS设备顶部的锁定按钮,当前处于激活状态的应用会切换至未激活状态,并且会保留未激活状态,直到设备解锁。
- 当用户按下主屏幕按钮(Homebutton)时,或者通过某种途径切换至另一个应用时,当前运行的应用会从激活状态切换为后台运行状态(backgroundstate)(实际上,应用会先从激活状态切换为未激活状态,停留极短的时间,然后再进入后台运行状态)。处于后台运行状态的应用仍然可以执行代码,但是其界面不再可见,也不能接收事件。默认情况下,进入后台运行状态的应用有大约10秒的时间,然后会进入挂起状态(suspendedstate)。
4.ViewController的生命周期
#pragma mark --- life circle // 非storyBoard(xib或非xib)都走这个方法 - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { NSLog(@"%s", __FUNCTION__); if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { } return self; } // 如果连接了串联图storyBoard 走这个方法 - (instancetype)initWithCoder:(NSCoder *)aDecoder { NSLog(@"%s", __FUNCTION__); if (self = [super initWithCoder:aDecoder]) { } return self; } // xib 加载 完成 - (void)awakeFromNib { [super awakeFromNib]; NSLog(@"%s", __FUNCTION__); } // 加载视图(默认从nib) - (void)loadView { NSLog(@"%s", __FUNCTION__); self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.view.backgroundColor = [UIColor redColor]; } //视图控制器中的视图加载完成,viewController自带的view加载完成 - (void)viewDidLoad { NSLog(@"%s", __FUNCTION__); [super viewDidLoad]; } //视图将要出现 - (void)viewWillAppear:(BOOL)animated { NSLog(@"%s", __FUNCTION__); [super viewWillAppear:animated]; } // view 即将布局其 Subviews - (void)viewWillLayoutSubviews { NSLog(@"%s", __FUNCTION__); [super viewWillLayoutSubviews]; } // view 已经布局其 Subviews - (void)viewDidLayoutSubviews { NSLog(@"%s", __FUNCTION__); [super viewDidLayoutSubviews]; } //视图已经出现 - (void)viewDidAppear:(BOOL)animated { NSLog(@"%s", __FUNCTION__); [super viewDidAppear:animated]; } //视图将要消失 - (void)viewWillDisappear:(BOOL)animated { NSLog(@"%s", __FUNCTION__); [super viewWillDisappear:animated]; } //视图已经消失 - (void)viewDidDisappear:(BOOL)animated { NSLog(@"%s", __FUNCTION__); [super viewDidDisappear:animated]; } //出现内存警告 //模拟内存警告:点击模拟器->hardware-> Simulate Memory Warning - (void)didReceiveMemoryWarning { NSLog(@"%s", __FUNCTION__); [super didReceiveMemoryWarning]; } // 视图被销毁 - (void)dealloc { NSLog(@"%s", __FUNCTION__); }
5.UIKit的使用,以及各种相应方法(这里就不一一指出来)
总结:iOS的开发,其实就是对UIKit的各种工具类的使用,多查看文档,就可以更好的开发
参考博客:https://www.jianshu.com/p/d60b388b19f5
参考官方文档:https://developer.apple.com/documentation/uikit?language=objc