Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1493481
  • 博文数量: 465
  • 博客积分: 8915
  • 博客等级: 中将
  • 技术积分: 6365
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-30 15:05
文章分类

全部博文(465)

文章存档

2017年(33)

2016年(2)

2015年(4)

2014年(29)

2013年(71)

2012年(148)

2011年(178)

分类: IT业界

2012-10-24 13:42:51

20天搞定iPhone软件开发

(一天一讲,20天轻松搞定iPhone开发)

王志刚,朱蕾,王中元编著.

ISBN 978-7-121-18487-1

201210月出版

定价:69.00

16

404

宣传语

无论你是菜鸟还是有其他编程经验的程序员

一天一讲,20天轻松搞定iPhone开发

本书是为有一定其他语言编程经验的程序员转向iOS软件开发而撰写的速成教材。全书一共20讲,一天完成1讲的学习。本着循序渐进的原则,前面的10讲偏重于Cocoa面向对象编程的基本概念以及Objective-C 2.0语言的语法基础。 从第10讲以后开始进入iOS软件开发的实战阶段,每1讲的内容都比较充实,其中包含了各种实例代码,读者可以在Xcode等开发环境中边实践边学习。读者完成全书20讲的学习后可以达到初级iOS程序员的水准。

 

iPhone软件开发稍有了解的朋友应该都知道,要短时间从其他语言的程序员过渡为iPhone软件开发的程序员,必须掌握两个方面的iPhone编程知识,即Objective-C2.0语言和iPhone SDK。对于有一定软件开发经验,特别是有面向对象语言(如C++Java)开发经验的程序员来说,掌握iPhone软件开发所必需的Objective-C 2.0语言是没有多少难度,最困难的是学会对iPhone SDK中所提供各类框架(framework)的使用。iPhone SDK中光框架就要几十种之多,再加上各种动态链接库(Dynamic Library,提供各种特定功能的API库,如数据库应用、解压缩等),总计有上百种之多。在一本速成类型的书籍中不可能都一一涉及。以笔者的经验,完成iPhone软件开发的入门,最关键的是掌握用于开发iPhone应用程序界面的UIKit框架。实际上,运行iPhone/iPad/iPod Touch上的iPhone应用程序本质上类似于客户软件终端,开发时涉及最多的也是软件界面。

本着以上的想法,笔者编写了这本名为《20天搞定iPhone软件开发》的书。一共20讲,一天完成一讲的学习。本着循序渐进的原则,前10讲偏重于Cocoa面向对象编程的基本概念及Objective-C 2.0语言的语法基础,对于有面向对象编程基础且有一定编程经验的读者来说,学习起来应该很轻松,可能提前几天就可以完成学习。

10讲以后开始进入iPhone软件开发的实战阶段,每一讲的内容都比较充实,其中包含了各种实例代码,鼓励读者在Xcode等开发环境中进行试运行验证。部分章节可能在一天之内难以掌握。其中第11讲至第13讲介绍了iPhone软件开发时经常用到的各种基础数据类型的使用知识;第14讲至第17讲是关于UIKit框架中各种类的使用方法及技巧,是学习iPhone软件开发时需要重点掌握的知识;第18讲介绍了在iPhone应用程序中使用数据库的技巧,包括直接使用SQLite数据库以及使用CoreData来间接操作SQLite数据库;最后第19讲和第20讲介绍了iPhone应用程序调试的基础,第19讲介绍了开发阶段的调试技巧,第20讲介绍如何在实际终端设备上进行调试的相关操作及技巧。

本书的目标是让对iPhone软件开发比较陌生的程序员成为初步具有实战能力iPhone软件程序员,以本书中学习到的iPhone软件开发知识为基础,可以进一步学习iPhone SDK中的其他各种框架,逐步提高自己的开发能力。

武汉大学计算机学院王中元副教授以及朱蕾负责编写了本书中的部分内容。另外,江友华、罗伟、黄建峰、朱至濂参加了本书部分章节的审校及协助编写工作。在此特别感谢电子工业出版社包括孙学瑛编辑在内的各位编辑在本书编写过程中的大力支持。

  作 者

20128

目 录 

1讲 配置开发环境.................................................1

1.1 Mac应用程序开发环境 .................................................1

1.2 iPhone应用程序开发环境 ..................................................................2

1.3 查看安装目录内容 ........................................................4

1.3.1 启动Xcode................................................................... 5

1.3.2 启动Interface Builder .................................................. 6

1.4 Mac中的基本操作 .........................................................6

1.4.1 弹出菜单的显示方法 .................................................. 6

1.4.2 工具条的定制 .............................................................. 8

2讲 应用程序与框架 ...............................................................10

2.1 关于应用程序 ..............................................................10

2.1.1 应用程序的种类 .........................................................11

2.1.2 关于iPhone应用程序 ................................................. 12

2.2 框架 .............................................................................13

2.2.1 简单的【Hello World】程序 ..................................... 13

2.2.2 框架的出现 ............................................................... 13

2.2.3 编程语言与框架的关系 ............................................. 14

2.3 Mac OS X以及iPhone SDK中的框架 ..............................................14

2.3.1 框架的安装目录 ........................................................ 14

2.3.2 CocoaCarbon ......................................................... 15

2.3.3 应用程序中使用的框架 ............................................. 16

2.4 CocoaCarbon的发展轨迹 .............................................................18

3讲 CocoaObjective-C ......................................................20

3.1 框架的使用 .................................................................20

3.1.1 关于API .................................................................... 20

3.1.2 API与编程语言的关系 .............................................. 21

3.2 Objective-C的发展史 ...................................................22

3.3 用于其他语言中的Cocoa API ..........................................................23

3.3.1 通过桥调用Cocoa...................................................... 23

3.3.2 是否应提倡在Objective-C以外的语言中调用Cocoa API的开发方式 .................. 24

3.4 解答与Objective-C相关的几个疑问 ................................................25

4讲 开发工具 .......................................................27

4.1 Xcode ...........................................................................27

4.1.1  综合开发环境Xcode的功能 ..................................... 27

4.1.2 工程窗口 ................................................................... 28

4.1.3 文本编辑器的功能 .................................................... 32

4.1.4 开发者手册 ............................................................... 35

4.2 Interface Builder ...........................................................36

4.3 Dashcode ......................................................................37

4.4 iPhone模拟器 ...............................................................38

4.5 其他工具 .....................................................................38

4.5.1 FileMerge .................................................................. 38

4.5.2 Icon Composer .......................................................... 39

4.5.3 Property List Editor ................................................... 39

4.6 MaciPhone应用程序开发的流程 .................................................39

4.6.1 准备应用程序用的材料 ............................................. 39

4.6.2 建立步骤 ................................................................... 41

4.6.3 gcc ........................................................ 42

5讲 Cocoa环境下的面向对象编程 .....................................43

5.1 面向对象的基本概念术语 ...............................................................43

5.1.1 类 ......................................................... 44

5.1.2 实例 ..................................................... 44

5.1.3 实例变量 ................................................................... 44

5.1.4 方法 ..................................................... 45

5.1.5 继承 ..................................................... 45

5.1.6 相互关系 ................................................................... 46

5.1.7 对象 ..................................................... 46

5.2 在Cocoa实例中理解基本术语 .........................................................47

5.2.1 通过按钮配置理解基本术语 ..................................... 47

5.2.2 文本输入框的继承关系 ............................................. 48

6讲 Hello World应用程序 ......................................................49

6.1 Hello World程序 ...........................................................49

6.2 启动Xcode创建工程 ....................................................49

6.3 编辑代码 .....................................................................51

6.4 启动Interface Builder设计用户界面 ................................................52

6.4.1 xib文件................................................. 52

6.4.2 Interface Builder窗口 ................................................ 53

6.4.3 设计Hello World的用户界面 ..................................... 55

6.5 连接插座与动作 ..........................................................55

6.6 完成Hello World App Delegate的代码编写 ....................................................58

6.7 建立与运行 .................................................................59

6.8 开发步骤再回顾 ........................................................61

7讲 MVC构架 ......................................................62

7.1 Hello World应用程序开发流程中包含的信息 ..........................................................62

7.2 什么是MVC构架 .........................................................62

7.2.1 视图层 .................................................. 63

7.2.2 模型层 .................................................. 63

7.2.3 控制层 .................................................. 64

7.3 使用MVC构架的实例 .................................................64

7.3.1 iTunes的模型 ............................................................ 64

7.3.2 iTunes的视图 ............................................................ 65

7.3.3 iTunes的控制 ............................................................ 66

7.4 使用MVC构架的Cocoa应用程序开发特点 ..................................................66

7.4.1 视图组件由Cocoa提供 .............................................. 66

7.4.2 保持视图与模型间的相互独立 ................................. 67

7.4.3 应用程序特有的功能由控制提供 ................................................... 67

7.4.4 只用创建模型以及控制的类 ..................................... 67

8讲 插座与动作 ...................................................68

8.1 视图与控制间信息交换 ...................................................................68

8.2 插座与动作 .................................................................69

8.2.1 什么是插座 ............................................................... 69

8.2.2 什么是动作 ............................................................... 69

8.3 插座与动作的连接 .....................................................70

8.3.1 插座与动作的追加 .................................................... 70

8.3.2 插座的连接 ............................................................... 71

8.3.3 动作的连接 ............................................................... 72

8.3.4 连接确认 ...................................................................73

9讲 Objective-C的语法 ..........................................................75

9.1 Objective-C的编程概论 ....................................................................75

9.1.1 Objective-CC语言 ................................................. 75

9.1.2 Objective-C程序 ........................................................ 75

9.1.3 类的声明与实体 ........................................................ 76

9.1.4 创建Objective-C的测试工程 ..................................... 76

9.2 类的声明 .....................................................................81

9.2.1 导入声明文件 ............................................................ 81

9.2.2 类的声明 ................................................................... 82

9.2.3 实例变量的声明 ........................................................ 82

9.2.4 实例方法的声明 ........................................................ 83

9.3 编写类的实体 ..............................................................87

9.3.1 编写类的实体 ............................................................ 87

9.3.2 编写方法代码 ............................................................ 87

9.3.3 关于方法的声明 ........................................................ 88

9.4 对象专用变量类型 ......................................................88

9.4.1 实例对象专用的变量类型 ......................................... 88

9.4.2 id类型 .................................................. 89

9.4.3 nil类型 ................................................. 89

9.4.4 在条件表达式中使用对象变量 ................................. 89

9.5 方法调用 .....................................................................90

9.5.1 实例方法的调用 ........................................................ 90

9.5.2 类方法的调用 ............................................................ 91

9.5.3 对象为nil的情况 ....................................................... 92

9.6 命名规则 .....................................................................92

9.6.1 类的命名规则 ............................................................ 92

9.6.2 实例变量的命名规则 ................................................ 93

9.6.3 方法的命名规则 ........................................................ 93

9.7 重新解析CocoaHello World程序..................................................94

9.7.1 HelloWorldAppDelegate.h ......................................... 94

9.7.2 HelloWorldAppDelegate.m ........................................ 95

10讲 内存管理 .....................................................98

10.1 内存分配与释放 ........................................................98

10.2 与内存相关的问题 ....................................................99

10.2.1 内存释放的时机 .................................................... 99

10.2.2 内存泄漏 ............................................................. 100

10.3 使用垃圾收集进行内存管理 .......................................................100

10.3.1 垃圾回收 ............................................................. 100

10.3.2 Objective-C与垃圾回收 ...................................... 102

10.3.3 垃圾回收功能有效化 .......................................... 103

10.3.4 垃圾回收编程的规则 .......................................... 103

10.4 由参照统计实现的内存管理 .......................................................104

10.4.1 参照统计的基本概念 .......................................... 104

10.4.2 retainrelease方法 ............................................. 104

10.4.3 对象保持到释放的流程 ...................................... 105

10.5 类的实例化 ..............................................................106

10.5.1 类的实例化与初期化 .......................................... 107

10.5.2 自动释放 ............................................................. 108

10.5.3 创建实例的方法 .................................................. 108

10.5.4 实例的释放 ......................................................... 109

10.6 内存管理的规则 ......................................................110

10.6.1 临时对象 ..............................................................110

10.6.2 内存管理经验总结 ...............................................111

11讲 字符串 ........................................................113

11.1 字符串专用类 ...........................................................113

11.2 NSStringNSMutableString ........................................................113

11.3 字符编码 ..................................................................114

11.3.1 什么是字符编码 ...................................................114

11.3.2 NSString的字符代码为Unicode ................................................115

11.3.3 NSStringEncoding ................................................115

11.4 字符串的生成 ...........................................................116

11.4.1 使用【@“”】的形式创建新字符串 ......................................116

11.4.2 创建中文字符串 ...................................................116

11.4.3 使用格式创建字符串 ...........................................118

11.5 NSRange ..................................................................119

11.6 字符串处理 ...............................................................120

11.6.1 计算字符串的长度 .............................................. 120

11.6.2 字符串连接、插入、删除 ................................... 121

11.6.3 字符串的比较 ..................................................... 124

11.6.4 字符串的检索 ..................................................... 125

11.6.5 抽取部分字符串 .................................................. 126

11.7 读写文本文件 ...........................................................127

11.7.1 读取文本文件 ..................................................... 127

11.7.2 文本文件输出 ..................................................... 128

12讲 集合 ............................................................130

12.1 数组 .........................................................................130

12.1.1 NSArray NSMutableArray .................................................... 130

12.1.2 数组的创建 ......................................................... 131

12.1.3 数组的长度 ......................................................... 132

12.1.4 通过索引取得对象 .............................................. 132

12.1.5 使用NSEnumerator取得对象 ................................................... 133

12.1.6 使用高速枚举取得对象 ...................................... 136

12.1.7 对象的追加与删除 .............................................. 136

12.2 字典 .........................................................................138

12.2.1 什么是字典类型 .................................................. 138

12.2.2 NSDictionary NSMutableDictionary ..................................... 139

12.2.3 NSDictionary的创建 ........................................... 139

12.2.4 键与值的取得 ..................................................... 141

12.2.5 键与值的追加 ..................................................... 142

12.3 包装类 .....................................................................143

12.3.1 什么是包装类 ..................................................... 143

12.3.2 NSNumber .......................................................... 144

12.4 对象的等价与同值 ..................................................146

12.4.1 拥有相同值的对象 .............................................. 146

12.4.2 等价与同值的判定 .............................................. 146

12.4.3 在集合类中的应用 .............................................. 147

12.5 集合类与参照统计 ..................................................148

12.5.1 NSArray与参照统计 ........................................... 148

12.5.2 NSDictionary与参照统计 .................................... 149

13讲 XML应用 ...................................................150

13.1 XML概要 .................................................................150

13.1.1 什么是XML ........................................................ 150

13.1.2 一种常用的XML实例——RSS ................................................ 150

13.2 XML的解析 ..............................................................151

13.2.1 解析及解析器 ..................................................... 151

13.2.2 XML解析器的种类 ............................................. 152

13.2.3 树结构................................................................. 153

13.3 CocoaXML解析器 ....................................................................154

13.3.1 NSXMLDocumentNSXMLNodeNSXMLElement .................................. 154

13.3.2 XML文档的解析器 ............................................. 155

13.3.3 Xpath .................................................................. 157

13.3.4 节点信息 ............................................................. 158

13.3.5 节点的父子关系 .................................................. 159

13.3.6 属性值的取得 ..................................................... 161

13.4 iPhone 应用软件中的XML解析实例 ..........................................162

13.4.1 第三方API及实例概要 ........................................ 162

13.4.2 创建并完成RSS文件解析程序 ................................................. 163

14讲 UIKit框架简介及iPhone应用程序基础类 ..................................168

14.1 UIKit概要 ................................................................168

14.1.1 UIKit类列表 ........................................................ 168

14.1.2 iPhone Hello World程序 ...................................... 171

14.1.3 不使用Interface BuilderHello World程序 ............................. 175

14.1.4 在Xcode 4中创建Hello World程序 ........................................... 180

14.2 画面构成基础——UIView ...........................................................184

14.2.1 UIView概要 ........................................................ 184

14.2.2 UIView嵌套 ........................................................ 187

14.3 UIViewController与画面控制 ......................................................195

14.3.1 使用UIViewController实现简单的画面切换 ............................ 195

14.3.2 使用UITabBarController实现并列画面跳转 ............................ 200

14.3.3 使用UINavigationController实现多层画面跳转 ...................... 204

14.3.4 跳转到任意画面 .................................................. 210

14.3.5 模态(modal)画面的显示方法 .............................................. 212

15讲 iPhone应用程序中的事件响应 ................................215

15.1 事件响应 .................................................................215

15.1.1 按钮的触摸 ......................................................... 215

15.1.2 响应方法的定义 .................................................. 217

15.1.3 滑块的滑动 ......................................................... 218

15.2 UIResponder .............................................................221

15.2.1 画面触摸的检测 .................................................. 221

15.2.2 标签触摸的检测 .................................................. 222

15.2.3 响应链................................................................. 224

15.2.4 触摸系列最终处理及取消 ................................... 228

15.3 二次触碰 .................................................................229

15.4 手势 .........................................................................232

15.4.1 拖动检测 ............................................................. 232

15.4.2 滑动检测 ............................................................. 236

15.4.3 快速滑动检测 ..................................................... 240

15.5 多点触摸 .................................................................243

15.5.1 检测多点触摸 .................................................... 243

15.5.2 检测双指滑动 ..................................................... 244

15.5.3 检测扩大/缩小 .................................................. 246

15.6 振动 .........................................................................249

15.6.1 检测振动 .............................................................249

16讲 常用UI控件 ...................................................................252

16.1 标签(UILabel .....................................................252

16.1.1 文本与对齐方式的设置 ...................................... 252

16.1.2 标签颜色与文本颜色的修改 .................................................... 253

16.1.3 改变字体 ............................................................. 254

16.1.4 字体尺寸的自动调整 .......................................... 254

16.1.5 多行字符串 ......................................................... 255

16.1.6 换行与省略 ......................................................... 256

16.1.7 高亮时的文本颜色 .............................................. 256

16.1.8 阴影显示 ............................................................. 256

16.1.9 绘制方法的定制 .................................................. 258

16.2 按钮(UIButton ...................................................259

16.2.1 按钮的配置与触摸检测 ...................................... 259

16.2.2 按钮的种类 ......................................................... 259

16.2.3 按钮的状态及标题变化 ...................................... 260

16.2.4 按钮触摸时的阴影反转 ...................................... 261

16.2.5 按钮触摸时的背景闪烁 ...................................... 261

16.2.6 在按钮中追加图片 .............................................. 262

16.2.7 设置按钮背景图片 .............................................. 263

16.2.8 调整按钮的边间距 .............................................. 264

16.2.9 设置标题的换行/省略 ...................................... 265

16.3 文本输入框(UITextField ........................................................266

16.3.1 文本输入框的显示 .............................................. 266

16.3.2 键盘的显示/隐藏 .............................................. 266

16.3.3 键盘的各种设置 .................................................. 267

16.3.4 文本输入框的边框线 .......................................... 267

16.3.5 文本的横向与纵向的调整 ................................... 267

16.3.6 文本输入框的字体及颜色 ................................... 268

16.3.7 提示信息的设置 .................................................. 269

16.3.8 清空按钮的显示 .................................................. 269

16.3.9 背景图片的设置 .................................................. 270

16.3.10 UIView的追加 .................................................... 270

16.3.11 文本输入框的状态监视 ...................................... 272

16.4 开关(UISwitch ...................................................272

16.5 选择控件(UISegmentedController .........................................274

16.5.1 选择控件的使用方法 .......................................... 274

16.5.2 选择控件的种类 .................................................. 276

16.5.3 不显示选择状态 .................................................. 276

16.5.4 选择控件的颜色变更 .......................................... 276

16.5.5 使用图标的选择控件 .......................................... 277

16.5.6 修改选项内容的显示位置 ................................... 278

16.5.7 设置选项的非活性 .............................................. 278

16.5.8 选项的插入与删除 .............................................. 278

16.6 滑块(UISlider .....................................................280

16.6.1 滑块的使用方法 .................................................. 280

16.6.2 滑块值的通知时机 .............................................. 281

16.6.3 向滑块中追加图标 .............................................. 281

16.6.4 滑块的定制 ......................................................... 282

16.7 日期时刻选择框(UIDatePicker .............................................284

16.7.1 日期时刻选择框的使用 ...................................... 284

16.7.2 以动画形式改变日期 .......................................... 285

16.7.3 设置间隔及最小/最大值 ................................... 285

16.7.4 日期选择框的种类 .............................................. 286

16.7.5 定制日期选择框 .................................................. 287

17讲 表格视图(UITableView .......................................290

17.1 表格显示 .................................................................290

17.1.1 最简单的表格显示 .............................................. 290

17.1.2 单元选择时的动作 .............................................. 293

17.1.3 表格的分段显示 .................................................. 294

17.1.4 表格的分组显示 .................................................. 297

17.1.5 段脚的显示 ......................................................... 299

17.1.6 索引的活用 ......................................................... 299

17.2 单元的定制 ..............................................................301

17.2.1 单元尺寸及颜色的修改 ...................................... 301

17.2.2 单元分隔线的修改 .............................................. 302

17.2.3 追加图片 ............................................................. 303

17.2.4 追加细节标签 ..................................................... 305

17.2.5 追加附件 ............................................................. 306

17.2.6 追加自定义附件 .................................................. 308

17.2.7 追加仅编辑模式时显示的附件 ................................................ 309

17.2.8 追加控件 ..............................................................311

17.2.9 定制单元背景 ..................................................... 315

18讲 使用SQLite数据库 ......................................................317

18.1 SQLite数据库及使用SQLite数据库的前期准备 ................................................317

18.1.1 SQLite数据库概要 .............................................. 317

18.1.2 使用SQLite数据库的前期准备 ................................................ 318

18.2 创建数据库及表格 ..................................................319

18.3 连接数据库 ..............................................................321

18.4 数据检索 .................................................................324

18.5 数据的追加与删除 ..................................................328

18.6 数据库更新 ..............................................................332

18.7 使用Core Data进行数据的追加、删除 .......................................335

18.7.1 Core Data的优点 ................................................. 335

18.7.2 创建使用Core Data的应用程序................................................ 336

18.7.3 改造Core Data的数据模型 .................................. 337

18.7.4 修改数据登录与保持代码 ................................... 341

18.7.5 数据删除代码 ..................................................... 342

18.8 追加编辑数据画面 ..................................................342

18.9 添加排序项目 ..........................................................345

19讲 调试方法 ...................................................349

19.1 缺陷与调试 ..............................................................349

19.1.1 什么是缺陷与调试 .............................................. 349

19.1.2 描述缺陷 ............................................................. 350

19.1.3 缺陷的重现 ......................................................... 350

19.2 NSLog ......................................................................351

19.2.1 使用NSlog输出调试信息 .................................... 351

19.2.2 NSLog的格式 ...................................................... 353

19.3 调试工具 .................................................................354

19.3.1 什么是调试工具 .................................................. 355

19.3.2 调试构建配置 ..................................................... 355

19.3.3 断点与调试模式的启动 ...................................... 356

19.3.4 调试界面 ............................................................. 356

19.3.5 调试的分步执行 .................................................. 358

19.4 例外 .........................................................................359

19.4.1 什么是例外 ......................................................... 359

19.4.2 捕捉例外 ............................................................. 360

19.4.3 发生例外时停止运行 .......................................... 362

19.4.4 避免使用太多的例外 .......................................... 363

20讲 使用iPhone终端进行测试 .........................................364

20.1 iPhone Developer Program ............................................................364

20.1.1 【iPhone Developer Program】的会员种类 ............................. 364

20.1.2 【iPhone Developer Program】的注册手续 ............................. 365

20.1.3 关于【Apple ID ............................................... 365

20.1.4 【iPhone Developer Program】的付款及认证手续 .................. 366

20.2 在实际iPhone手机上的调试 ........................................................366

索引 ..............................................................................379

 

阅读(916) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~