IOS开发基础 – IOS简介及工作原理 – IOS简介



IOS开发基础 – IOS简介及工作原理 – IOS简介

0 0


dpir_share_ios


On Github chinavatar / dpir_share_ios

IOS开发基础

Created by zhaowei.ding // @丁兆伟Avatar

环境&工具

Mac OSX Xcode5 or Xcode6 Objective-C [ iPhone ] This slide has fragments which are also stepped through in the notes window.

分享内容

IOS简介及工作原理 Objective-C基础 Xcode使用 demo练习

IOS简介及工作原理

IOS工作原理——程序的生命周期

每一个iOS应用程序都包含一个UIApplication对象,iOS系统通过该UIApplication对象监控应用程序生命周期全过程。每一个iOS应用程序都要为其UIApplication对象指定一个代理对象,并由该代理对象处理UIApplication对象监测到的应用程序生命周期事件

IOS简介

iOS是由苹果公司开发的手持设备操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等苹果产品上。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于UNIX的商业操作系统。原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。

iPhone全家福

iPhone全家福

IOS程序的5种状态

NotRunning Inactive Active Background Suspended

NotRunning

应用还没有启动,或者应用正在运行但是途中被系统停止

Inactive

当前应用正在前台运行,但是并不接收事件(当前或许正在执行其他代码)。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯一在此状态停留时间比较长的情况是:当用户锁屏时,或者系统提示用户去响应某些(如电话来电、有未读短信等)事件的时候。

Active

当前应用正在前台运行,并且接收事件。这是应用正在前台运行时所处的正常状态。

Background

应用处在后台,并且还在执行代码。大多数将要进入Suspended状态的应用,会先短暂进入此状态。然而,对于请求需要额外执行时间的应用,会在此状态保持较长一段时间。另外,如果一个应用要求启动时直接进入后台运行,这样的应用会直接从Not running状态进入Background状态,中途不会经过Inactive状态。比如没有界面的应用。注此处并不特指没有界面的应用,其实也可以是有界面的应用,只是如果要直接进入Background状态的话,该应用界面不会被显示。

Suspended

应用处在后台,并且已停止执行代码。系统自动将应用移入此状态,且在此操作之前不会对应用做任何通知。当处在此状态时,应用依然驻留内存但不执行任何程序代码。当系统发生低内存告警时,系统将会将处于Suspended状态的应用清除出内存,以为正在前台运行的应用提供足够的内存。

IOS程序生命周期

    -(void)applicationWillResignActive:(UIApplication *)application:

当应用程序将要进入非活动状态调用。在此期间,应用程序不接收消息或事件,比如来电

    -(void)applicationDidBecomeActive:(UIApplication *)application:

当应用程序将要进入活动状态调用。这个刚好跟上面的方法相反。

    -(void)applicationDidEnterBackground:(UIApplication *)application:

当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可

    -(void)applicationWillEnterForeground:(UIApplication *)application:

当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反

    -(void)applicationWillTerminate:

当程序将要退出时被调用,通常用来保存数据和一些退出前的清理工作。

    -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application:

iOS设备只有有限的内存,如果为应用程序分配了太多内存,操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作,防止程序被终止

    -(void)applicationDidFinishLaunching:(UIApplication*)application:

当程序载入后执行

    -(BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)URL:

当打开URL时执行

开发框架

  • Foundation该框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合,还有其他功能,包括处理日期和时间、自动化的内存管理、处理基础文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形)等
  • Cocoa Touch包括Foundation框架及UIKit,MAC下为Foundation框架及ApplicationKit(AppKit),提供一下视图的基础组件

开发模型——MVC

  • Model
  • View
  • Controller

UIViewController生命周期

典型的iOS程序包含一个Window(窗口)和几个UIViewController(视图控制器),每个UIViewController可以管理多个UIView(在iPhone里看到的、摸到的都是UIView,可能是UITableView、UIWebView、UIImageView等)。这些UIView之间如何进行层次迭放、显示、隐藏、旋转、移动等都由UIViewController进行管理,而UIViewController之间的切换,通常情况是通过UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewController来控制的。UIViewController用于管理UIView的生命周期及资源的加载与释放,而UIV-iew与UIWindow共同展示了应用用户界面

    -(void)loadView:

用于加载视图资源

    -(void)viewDidLoad:

初始化视图

    -(void)viewWillAppear:(BOOL)animated:

视图即将出现

    -(void)viewDidAppear:(BOOL)animated:

视图出现

    -(void)viewWillDisappear:(BOOL)animated:

视图即将消失

    -(void)viewDidDisappear:(BOOL)animated:

表示视图已经消失

    -(void)viewDidUnload:

用于释放视图资源

Objective-c基础

基础语法 属性与成员变量 Delegate

基础语法

.h               //头文件,接口定义

.m               //实现文件

+                //修饰方法、表示类方法

-                 //修饰方法、表示实例方法                    

self             //this

[]               //方法调用

@property       //声明属性

@protocal       //声明协议

#import         //引用头文件,类似#include

属性和成员变量

Delegate

DEMO大战

THE END

By zhaowei.ding