iOS开发概述
iOS开发的准备:1.Object-C
2.Xcode
3.Mac OS X
4.调试设备
5.开发者证书
iOS系统架构:
1.核心操作系统层(Core OS):包括内存管理、文件系统、电源管理以及一些其他操作系统任务,可以直接和硬件设备进行交互
2.核心服务层(Core Services):
3.媒体层(Media)
4.可触摸层(Cocoa Touch):常用框架UIKit,为应用程序提供了各种可视化组件
iOS和Android系统架构对比
Android基于Linux内核设计的,是在Linux内核上面运行了一个Java虚拟机,虚拟机再运行软件。系统上面又套了个系统,所以占内存大,运行速度略低
iOS基于Unix的,直接与底层硬件通信,系统底层、应用框架、应用软件都是采用C,C++或者Object-C写的,运行效率高
iOS运行过程详解
每一个应用程序都有属于自己的UIWindow,UIWindow继承自UIViewUIViewController控制UIView之间的切换,UIView的生命周期,给UIView装配数据,监听UIView的事件
iOS运行原理:
1.首先执行main函数
2.执行UIApplicationMain函数
3.UIApplicationMain函数内部
1)创建一个UIApplication实例。这个UIApplication对象是单例的,一个iOS程序对应一个UIApplication对象
2)UIApplication对象是应用程序的象征
3)开启一个消息循环(main loop),用来监听用户的操作
4)再创建一个UIApplication的delegate对象,负责监听UIApplication的生命周期
5)当UIApplication的生命周期发生改变时,会给delegate发送不同的消息
当第一次运行程序的时候
didFinishuLaunchingWithOptions(加载完毕)->applicationDidBecomeActive(获取焦点)
当点击home键的时候
applicationWillResignActive(失去焦点)->applicationDidEnterBackground(进入后台)
当再次点击应用图标重新进入应用的时候
applicationWillEnterForeground(进入前台)->applicationDidBecomeActive(获取焦点)
UIApplicationMain函数的参数
第3个参数用来指定UIApplication的类名或子类,如果为nil,默认为UIApplication
第4个参数用来指定UIApplication的代理
第一个iOS程序:QQ登录界面
UI元素一般使用assign即可,不用进行内存管理resignFirstResponder代表当前试图不做第一响应者,键盘就会退出
[Self.view endEditing:YES]如果第一响应者存在于self.view,则键盘可退出