zoukankan      html  css  js  c++  java
  • 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)。

     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

  • 相关阅读:
    Ubuntu 网络代理配置
    WSL2 环境配置
    两台笔记本电脑实现同一wifi下虚拟主机网络实现互通
    Linux /dev/loop0文件详解
    Excel两张表查重,返回True
    计算机网络基础/进制转换/企业级子网IP划分
    leetcode 2030. 含特定字母的最小子序列
    nginx https
    kubernetes(二十四)ingress https
    求两个向量的旋转矩阵 E
  • 原文地址:https://www.cnblogs.com/xzmxddx/p/12951626.html
Copyright © 2011-2022 走看看