1-读书笔记----iOS开发指南:从零基础到App Store上架--iOS入门

iOS开发指南:从零基础到App Store上架


AppDelegate类是应用程序委托对象,这个类中继承的一系列方法在应用生命周期的不同阶段会被回调。启动HelloWorld时,首先会调用application:didFinishLaunchingWithOptions:方法,


在访问资源文件的时候,“文件夹”和“组”还是有区别的,文件夹中的资源在访问路径里要有路径。如果一个icon.png文件放在image文件夹下,访问它的路径是“image/icon.png” ;如果image是组,则访问它的路径是“icon.png”


HelloWorld-Info.plist  工程属性描述文件,它的命名必须是“工程名+Info.plist” 
InfoPlist.strings  工程本地化的字符串文件 
main.m  应用程序的入口程序文件,它不是一个类,其中只有一个main()主函数,应用的运行都是由此开始 
HelloWorld-Prefix.pch   在这个文件中可以引入一些头文件,这样工程中的其他文件就不需要再引入了。它的命名必须是“工程名+ Prefix.pch”


我们在使用一些老版本的Xcode创建工程时候经常会看到xib文件,事实上xib与故事板是非常相似的技术。只不过一个工程中可以有多个xib文件, 一个xib文件对应着一个视图控制器和多个视图。而使用故事板时,一个工程只需要一个主故事板文件就可以了。


每个视图控制器都会对应一个Scene,Scene翻译为“场景”,可以理解为应用的一个界面或屏幕,在这个屏幕中有很多视图或控件,相当于一个xib。跳转的类型分为:Push、Modal、Popover和自定义方式。。Push是树形导航模式,Modal是模态导航模式,Popover是呈现浮动窗口

作为应用程序的委托对象,AppDelegate类在应用生命周期的不同阶段会回调不同的方法。首先,让我们先了解一下iOS应用的不同状态及它们彼此间的关系




下iOS应用的5种状态。 
 Not Running(非运行状态) 。应用没有运行或被系统终止。 
  Inactive(前台非活动状态) 。应用正在进入前台状态,但是还不能接受事件处理。 
 Active(前台活动状态) 。应用进入前台状态,能接受事件处理。 
 Background(后台状态) 。应用进入后台后,依然能够执行代码。如果有可执行的代码,就会执行代码,
如果没有可执行的代码或者将可执行的代码执行完毕,应用会马上进入挂起状态。 
 Suspended(挂起状态) 。处于挂起的应用进入一种“冷冻”状态,不能执行代码。如果系统内存不够,
应用会被终止。 


在应用状态跃迁的过程中,iOS系统会回调AppDelegate中的一些方法,并且发送一些通知。实际上,在应
用的生命周期中用到的方法和通知很多,我们选取了几个主要的方法和通知进行详细介绍




非运行状态——应用启动场景

场景描述:用户点击应用图标的时候,可能是第一次启动这个应用,也可能是应用终止后再次启动。该场景的状态跃迁过程见图2-21,共经历两个阶段3个状态:Not running→Inactive→Active。 
 在Not running→Inactive阶段。调用application:didFinishLaunchingWithOptions:方法,发出UIApplicationDidFinishLaunchingNotification通知。 
 在Inactive→Active阶段。调用applicationDidBecomeActive:方法,发出UIApplicationDidBecomeActiveNotification通知。



点击Home键——应用退出场景 

场景描述:应用处于运行状态(即Active状态)时,点击Home键或者有其他的应用导致当前应用中断。该场景的状态跃迁过程可以分成两种情况:可以在后台运行或者挂起,不可以在后台运行或者挂起。根据产品属性文件(如HelloWorld-Info.plist)中的相关属性Application does not run in background(如图2-22所示)是与否可以控制这两种状态。

状态跃迁的第一种情况:应用可以在后台运行或者挂起,该场景的状态跃迁过程见图2-23,共经历3个阶段4
个状态:Active → Inactive → Background→Suspended。 
 在Active→Inactive阶段。调用applicationWillResignActive:方法,发出UIApplicationWillResign- 
ActiveNotification通知。 
 在Inactive→Background阶段。应用从非活动状态进入到后台(不涉及我们要重点说明的方法和通知)。 
 在Background→Suspended阶段。调用applicationDidEnterBackground:方法,发出UIApplication- 
DidEnterBackgroundNotification通知。



状态跃迁的第二种情况:应用不可以在后台运行或者挂起,其状态跃迁情况见图2-24,共经历4个阶段5个状
态:Active → Inactive → Background→Suspended→Not running 。 
 在Active→Inactivd阶段。应用由活动状态转为非活动状态(不涉及我们要重点说明的方法和通知)。 
 在Inactive→Background阶段。应用从非活动状态进入到后台(不涉及我们要重点说明的方法和通知)。 
 在Background→Suspended阶段。调用applicationDidEnterBackground:方法,发出UIApplication- 
DidEnterBackgroundNotification通知。 
 在Suspended→Not running阶段。调用applicationWillTerminate:方法,发出UIApplicationWill- 
TerminateNotification通知。



挂起重新运行场景 

场景描述:挂起状态的应用重新运行。该场景的状态跃迁过程如图2-26所示,共经历3个阶段4个状态:
Suspended → Background → Inactive → Active。

 Suspended→Background阶段。应用从挂起状态进入后台(不涉及我们讲述的这几个方法和通知)。 
 Background→Inactive阶段。调用applicationWillEnterForeground:方法,发出UIApplication- 
WillEnterForegroundNotification通知。 
  Inactive→Active阶段。调用applicationDidBecomeActive:方法,发出UIApplicationDidBecome- 
ActiveNotification通知。



内存清除——应用终止场景 

场景描述:应用在后台处理完成时进入挂起状态(这是一种休眠状态),如果这时发出低内存警告,为了满
足其他应用对内存的需要,该应用就会被清除内存从而终止运行


内存清除的时候应用终止运行。内存清除有两种情况,可能是系统强制清除内存,也可能是由使用者从任务
栏中手动清除(即删掉应用)。内存清除后如果应用再次运行,上一次的运行状态不会被保存,相当于应用第一
次运行。 
在内存清除场景下,应用不会调用任何方法,也不会发出任何通知。 



视图生命周期

视图生命周期与视图控制器关系




在视图控制器已被实例化,视图被加载到内存中时调用viewDidLoad方法,这个时候视图并未出现。在该方法中,通常进行的是对所控制的视图进行初始化处理。viewDidLoad方法在应用运行的时候只调用一次


didReceiveMemoryWarning:方法的主要职能是释放内存,包括视图控制器中的一些成员变量和视图的释放.


iOS UI状态保持和恢复

iOS 中,我们可以在以下3种地方实现状态保持和恢复:

应用程序委托对象

视图控制器

自定义视图

保存和恢复事实上就是向一个归档文件中编码和解码的过程。



iOS的整体架构图如图2-38所示,分为4——Cocoa Touch层、Media层、Core Services层和Core OS

1.Cocoa Touch

该层提供了构建iOS应用的一些基本系统服务(如多任务、触摸输入和推送通知等)和关键框架


2. MediaMedia层提供了图形、音频、视频和AirPlay技术



3. Core Services该层提供了iCloud、应用内购买、SQLite数据库和XML支持等技术



4. Core OS该层提供了一些低级功能,开发中一般不直接使用它



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值