iOS学习-《iOS编程(第四版)》

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)。

iOS学习-《iOS编程(第四版)》

 

 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

 

iOS学习-《iOS编程(第四版)》

上一篇:web测试与app测试的区别


下一篇:ArcGis API FOR Silverlight 做了个导航工具~