iOS开发指南[试读]
1.1 iOS概述
自从App Store上线以来,它创造了很多神话,给我们这些程序员提供了展示自己的舞台,给了我们创意的空间,给了我们创业的机会。下面让我们从这里开始iOS开发之旅吧。 1.1 iOS概述 在本节中,我们将了解什么是iOS以及iOS 6有哪些新特性。 1.1.1 iOS介绍 iOS的系统架构分为4层——Cocoa Touch层、Media层、Core Services层和Core OS层,相关内容可参见2.6.1节。 下面我们简要介绍一下iOS的一些功能,具体如下所示。 多点触摸和手势。触摸功能在iOS设备之前就被采用,但基本都是单点触摸,即只能用一个手指,而iOS设备能够感... 查看全部[ 1.1 iOS概述 ]
1.2 开发环境及开发工具
苹果公司于2008年3月6日发布了iPhone和iPod touch的应用程序开发包,其中包括Xcode开发工具、iPhone SDK和iPhone手机模拟器。第一个Beta版本是iPhone SDK 1.2b1(build 5A147p),发布后立即就能使用,但是同时推出的App Store所需要的固件更新直到2008年7月11日才发布。编写本书时,iOS SDK 6.1.2版本已经发布。 iOS开发工具主要是Xcode。自从Xcode 3.1发布以后,Xcode就成为iPhone软件开发工具包的开发环境。Xcode可以开发Mac OS X和iOS应用程序,其版本是与SDK相互对应的。例... 查看全部[ 1.2 开发环境及开发工具 ]
1.3 本书中的约定
为了方便大家阅读本书,本节介绍一下书中案例代码和图示的相关约定。 1.3.1 案例代码约定 作为一本编程方面的书,书中有很多案例代码,我们可以从图灵网站(www.ituring.com.cn)本书主页免费注册下载或者从智捷教育提供的本书服务网站(www.iosbook1.com/code.html)下载,解压后会看到如图1-5所示的目录结构。 图1-5 源代码文件目录 ch02~ch18代表第2章到第18章的案例代码或一些资源文件,其中工程或工作空间的命名有如下几种形式。 二级目录标号,如“2.1 HelloWorld”说明是2.1节中使用的HelloWorld工程(或工作... 查看全部[ 1.3 本书中的约定 ]
2.1 创建基于nib的HelloWorld工程
从控制台输出Hello World是我学习C语言的第一步,也是我人生中非常重要的一步。多年后的今天,我希望仍以HelloWorld作为第一步,为大家开启一个神奇、瑰丽的世界——iOS。 本章以HelloWorld作为切入点,向大家系统介绍什么是iOS应用以及如何使用Xcode创建iOS应用。 2.1 创建基于nib的HelloWorld工程 在学习之初,我们有必要对使用Xcode创建iOS工程做一个整体概览,这里我们通过创建一个基于nib的HelloWorld iPhone应用来详述其中涉及的知识点。 实现HelloWorld应用后,会在界面上展示字符串Hello World(效果如... 查看全部[ 2.1 创建基于nib的HelloWorld工程 ]
2.2 基于故事板的HelloWorld工程
故事板(storyboard)是用来替代xib的技术,也是iOS 5最重要的新特性之一。本节中,我们将用故事板重构HelloWorld。 2.2.1 使用故事板重构HelloWorld 参见2.1节描述的HelloWorld创建过程,我们在图2-3中勾选Use Storyboards复选框。 工程创建完成之后,通过导航进入MainStoryboard.storyboard,界面如图2-12所示。 图2-12 创建故事板工程 添加Label控件的操作与2.1节相同,如图2-13所示。 图2-13 添加Label控件 点击 按钮运行,运行结果与2.1节相同。 2.2.2... 查看全部[ 2.2 基于故事板的HelloWorld工程 ]
2.3 应用生命周期
作为应用程序的委托对象,AppDelegate类在应用生命周期的不同阶段会回调不同的方法。首先,让我们先了解一下iOS应用的不同状态及它们彼此间的关系,见图2-19。 图2-19 iOS应用状态图 下面简要介绍一下iOS应用的5种状态。 Not Running(非运行状态)。应用没有运行或被系统终止。 Inactive(前台非活动状态)。应用正在进入前台状态,但是还不能接受事件处理。 Active(前台活动状态)。应用进入前台状态,能接受事件处理。 Background(后台状态)。应用进入后台后,依然能够执行代码。如果有可执行的代码,就会执行代码,如果没有可执行的代码或者将可... 查看全部[ 2.3 应用生命周期 ]
2.4 视图生命周期
视图是应用的一个重要组成部分,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻。 2.4.1 视图生命周期与视图控制器关系 以视图的4种状态为基础,我们来系统了解一下视图控制器的生命周期。在视图不同的生命周期中,视图控制器会回调不同的方法,具体如图2-27所示。 图2-27 视图控制器的一些主要方法 在视图控制器已被实例化,视图被加载到内存中时调用viewDidLoad方法,这个时候视图并未出现。在该方法中,通常进行的是对所控制的视图进行初始化处理。 视图可见前后会调用viewWillAppear:方法和viewDidAppear:方法;视图不可见前... 查看全部[ 2.4 视图生命周期 ]
2.5 设置产品属性
在前面讲解应用生命周期时,为了禁止应用在后台运行,我们将HelloWorld-Info.plist文件中的Application does not run in background属性修改为YES(即UIApplicationExitsOnSuspend = YES),这项操作就属于产品属性的设置。在Xcode中,产品与Target直接相关,而Target与Project直接相关。 2.5.1 Xcode中的Project和Target 打开HelloWorld工程时,我们会看到如图2-30所示的界面。产品属性包括Project和Target两块内容。一个工程只有一个Project,... 查看全部[ 2.5 设置产品属性 ]