《Objective-C程序设计入门与实践》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:刘一民,刘宪利编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2013
  • ISBN:9787113168155
  • 页数:402 页
图书介绍:本书的内容从形式上可以分为五个部分,总共十五个章节。首先,将会介绍iOS平台开发的基础内容:其中包括了iOS平台开发技术、了解一下iOS的发展史、Objectvie-C应用开发环境的搭建以及初次感受一下iPhone开发, 经过这一部分使读者对有关iPhone/iPad开发有一个大致的了解,同时感受一下iPhone开发过程;其次,内容是Objective-C语言基础知识,这也是本书的基础点;然后,以面向对象的角度,同时结合Object i ve-C语言的特性,对类、消息和协议、对象以及基础(Foundation)框架继续讲解,来进一步了解Objective-C,这一部分是本书的重点部分;然后,以性能的角度,从内存管理、文件和数据管理以及UIKit常用类及应用,来进一步深化对Objective-C介绍;最后,是实践环节,通过两个案例,把前面学到知识应用到实践中,使读者真正体验和了解到软件开发过程。

第1篇 认识Objective-C与iPhone开发 1

第1章 Objective-C、iOS、iPhone和乔布斯 1

1.1 认识Objective-C 1

1.1.1 发展历程及变化 1

1.1.2 语言性能与分析 2

1.2 iOS简介 3

1.2.1 iOS的发展历程 3

1.2.2 iOS的设计和功能特性 4

1.3 iOS架构 5

1.3.1 Cocoa Touch层 6

1.3.2 Media(媒体)层 8

1.3.3 Core Services层 11

1.3.4 Core OS层 13

1.4 iPhone简介 14

1.4.1 iPhone发展历程 14

1.4.2 iPhone功能 16

1.4.3 iPhone特色 16

1.4.4 iPhone市场行情 18

1.5 iOS开发者工具 18

1.5.1 Xcode 18

1.5.2 Interface Builder 20

1.5.3 Instruments 21

1.5.4 Shark 22

1.6 乔布斯简介 22

1.6.1 早年 22

1.6.2 创建苹果公司及发展 22

1.6.3 回归苹果及改革 23

1.6.4 个人成就 23

第2章 搭建Objective-C应用开发环境 24

2.1 基于Windows平台搭建开发环境 24

2.1.1 前期准备 24

2.1.2 安装虚拟机VMware 25

2.1.3 安装Mac OS 27

2.1.4 设置Windows和MAC共享目录 30

2.1.5 安装iPhone SDK 31

2.1.6 启动Xcode 32

2.2 进一步认识Objective-C 32

2.2.1 类接口(@Interface) 32

2.2.2 类实现(@Implementation) 33

2.2.3 创建类对象 34

2.3 Xcode的命令行工具 34

2.3.1 使用Xcode的命令行工具 34

2.3.2 输入和输出函数 37

2.3.3 指令符(@) 38

2.4 进一步认识Xcode 39

2.4.1 工程定义信息 40

2.4.2 源文件引用 42

2.4.3 目标的处理 43

2.4.4 执行环境 45

第3章 创建你的第一个iPhone应用程序 46

3.1 示例实现目标 46

3.2 应用概念概述 46

3.2.1 设计模式 47

3.2.2 委托 47

3.2.3 模型-视图-控制器模式 48

3.2.4 目标-动作 50

3.3 教你如何创建工程 50

3.3.1 使用Xcode 51

3.3.2 应用程序引导 52

3.4 如何添加一个视图控制器 54

3.4.1 添加一个视图控制器类 54

3.4.2 添加一个视图控制器属性 55

3.4.3 创建视图控制器实例 56

3.4.4 如何建立视图 57

3.4.5 内务处理做些什么 57

3.4.6 实现源码列表 57

3.4.7 测试你的应用程序 58

3.5 查看nib文件 58

3.5.1 使用Interface Builder 58

3.5.2 nib文件包含些什么 59

3.5.3 文件的拥有者 59

3.5.4 如何使用视图插座变量 60

3.5.5 如何加载nib文件 61

3.5.6 测试应用程序 61

3.6 如何配置视图 62

3.6.1 添加用户接口元素 62

3.6.2 视图控制器接口声明 64

3.6.3 教你如何制定关联 65

3.6.4 测试 67

3.7 如何实现视图控制器 67

3.7.1 视图控制器中的属性 67

3.7.2 changeGreeting:方法 68

3.7.3 文本字段的委托 68

3.8 如何解决编译遇到的疑难 69

3.8.1 代码和编译器警告 69

3.8.2 检查nib文件中的关联 69

3.8.3 委托方法的名称 69

3.9 下一步做什么 70

3.9.1 用户接口 70

3.9.2 编程创建用户接口元素 70

3.9.3 如何把程序安装到设备 71

3.9.4 额外的功能 71

第2篇 Objective-C的一点基础 72

第4章 Objective-C的一点基础——数据类型和运算符 72

4.1 基本数据类型 72

4.1.1 整型 72

4.1.2 实型 75

4.1.3 字符型 78

4.1.4 字符串 80

4.1.5 枚举类型 80

4.2 其他常用类型 81

4.2.1 id类型 81

4.2.2 布尔值(BOOL) 83

4.2.3 typedef 85

4.2.4 nil和Nil 87

4.2.5 SEL类型 87

4.3 指针和数组 89

4.3.1 数据和内存 89

4.3.2 指针 90

4.3.3 数组 94

4.3.4 数组和指针的关系 98

4.4 表达式和运算符 101

4.4.1 Objective-C运算符 102

4.4.2 表达式和运算优先级 102

4.4.3 算术运算符 102

4.4.4 算术表达式 103

4.4.5 赋值运算符 104

4.4.6 关系运算符 105

4.4.7 逻辑运算符 105

4.4.8 增减运算符 106

4.4.9 强制类型转换运算符 107

4.4.10 位运算符 108

第5章 Objective-C的一点基础——程序控制语句 112

5.1 条件语句 112

5.1.1 逻辑运算符 112

5.1.2 if语句 112

5.1.3 switch语句 115

5.1.4 条件运算符 117

5.2 循环结构 118

5.2.1 for语句 118

5.2.2 while语句 120

5.2.3 do-while语句 120

5.2.4 嵌套语句 121

5.3 跳转语句 122

5.3.1 break语句 122

5.3.2 continue语句 122

5.3.3 return语句 122

5.4 编译预处理 123

5.4.1 宏定义(#define) 124

5.4.2 运算符 125

5.4.3 #import语句 126

5.4.4 条件编译 127

5.5 几个常用特性 128

5.5.1 关联引用 128

5.5.2 快速枚举 130

5.5.3 选择器 131

5.5.4 静态类型的使用 133

第6章 Objective-C的一点基础——算法 137

6.1 认识算法 137

6.1.1 什么是算法 138

6.1.2 算法有哪些特性 138

6.2 算法的表达方式 139

6.2.1 用自然语言表达算法 139

6.2.2 用流程图表达算法 139

6.2.3 用N-S流程图表达算法 141

6.2.4 用伪代码表达算法 142

6.2.5 用计算机语言表达算法 143

6.3 排序 144

6.3.1 简单排序 144

6.3.2 高级排序 149

6.3.3 其他排序 151

6.4 递归算法 153

6.4.1 认识递归算法 153

6.4.2 递归算法的简单应用 155

第3篇 充实你的Objective-C知识 156

第7章 充实你的Objective-C知识——类 156

7.1 认识根类 156

7.1.1 NSObject简介 156

7.1.2 根类和协议 157

7.1.3 根类方法 157

7.1.4 根类接口规范 159

7.1.5 根类实例方法和类方法 159

7.2 如何设计类 159

7.2.1 设计接口(@interface) 160

7.2.2 设计实现(@implementation) 162

7.3 变量的种类 163

7.3.1 何为局部变量 164

7.3.2 何为全局变量 164

7.3.3 何为实例变量 164

7.3.4 何为静态(static)变量 167

7.3.5 变量的存储类别 168

7.4 认识属性 169

7.4.1 如何声明属性(@property) 169

7.4.2 声明属性的特性 170

7.4.3 如何实现属性(@synthesize) 171

7.4.4 属性类型和相关函数 173

7.4.5 认识属性的类型编码 173

7.4.6 如何实现属性重声明 174

7.4.7 如何修改父类的属性 174

7.4.8 新旧版本属性运行时的区别 175

7.5 探究方法 175

7.6 继承 176

7.6.1 如何继承父类的实例变量 177

7.6.2 如何继承父类的方法 177

7.6.3 如何重写(override)方法 178

7.6.4 如何重载(overload)方法 179

7.6.5 何时进行方法的重载 181

7.6.6 何时使用子类 183

7.6.7 类别(Categories)和延伸(Extensions) 184

7.7 异常处理 187

7.7.1 如何启用异常处理 187

7.7.2 异常处理方式 188

7.7.3 如何捕捉不同类型的异常 188

7.7.4 如何抛出异常 189

7.8 如何使用类名 189

7.9 类怎样进行比较 190

7.10 类类型 190

7.10.1 如何指定静态类型 190

7.10.2 类型的自查处理机制 191

第8章 充实你的Objective-C知识——消息和协议 192

8.1 消息 192

8.1.1 认识消息语法 192

8.1.2 如何向nil发送消息 193

8.1.3 接收实例变量 194

8.1.4 如何获得方法地址 194

8.1.5 了解objc_msgSend函数 195

8.1.6 如何使用隐藏的参数 196

8.1.7 消息转发处理的机制 197

8.1.8 消息转发和多重继承 198

8.1.9 何为消息代理对象 199

8.1.10 消息转发和类继承 199

8.1.11 认识多态性 200

8.1.12 如何实现动态绑定 201

8.1.13 解析动态方法 201

8.1.14 如何使用动态加载 202

8.1.15 “.”语法格式 202

8.2 协议 205

8.2.1 何为预定义接口 205

8.2.2 如何使用预定义方法 206

8.2.3 为匿名对象声明接口 206

8.2.4 非层级关系的相似(Nonhierarchical Similarities) 207

8.2.5 何为正式协议 207

8.2.6 何为非正式协议 208

8.2.7 何为协议对象 209

8.2.8 如何采用一个协议 209

8.2.9 如何服从一个协议 210

8.2.10 类型校验处理机制 210

8.2.11 如何协议嵌套协议 211

8.2.12 引用其他协议 211

第9章 充实你的Objective-C知识——对象 213

9.1 如何创建对象 213

9.1.1 对象分配处理的机制 213

9.1.2 对象初始化 214

9.1.3 使用dealloc方法 219

9.1.4 何为类工厂方法 220

9.2 对象动态类型 221

9.3 探究对象的可变性 221

9.3.1 什么时候用可变或不可变对象 221

9.3.2 使用可变对象编程 222

9.4 对象间如何实现通信 225

9.4.1 面向对象程序中的通信有哪些 225

9.4.2 IBoutlet变量如何实现通信 226

9.4.3 委托和数据源 227

9.4.4 可视化通信形式——目标-动作机制 230

9.4.5 特定通信形式——绑定 234

9.4.6 特定通信形式——通告 236

9.4.7 委托、观察者和目标的所有权 241

9.5 对象的生命周期 242

9.6 对象的所有权和销毁 245

9.6.1 对象所有权策略有哪些 245

9.6.2 保留计数的处理机制 246

9.6.3 何时使用自动释放 246

9.6.4 共享对象的有效性 248

9.6.5 如何使用存取方法 248

9.6.6 如何回收对象 249

9.6.7 通过引用返回的对象 250

9.6.8 保留循环的处理机制 250

9.6.9 何为对象的弱引用 251

9.6.10 如何有效地进行资源管理 251

第10章 充实你的Objective-C知识——基础(Foundation)框架 253

10.1 Foundation框架结构 253

10.2 与Core Foundation框架的区别 256

10.3 如何引用及查询Foundation框架信息 256

10.4 数字类型 259

10.4.1 数字类型类(NSNumber) 259

10.4.2 int、NSInteger、NSUInteger和NSNumber的区别及联系 260

10.5 字符串类型 260

10.5.1 不可变字符串类(NSString) 261

10.5.2 可变字符串类(NSMutableString) 263

10.6 数组类型 265

10.6.1 不可变数组类(NSArray) 265

10.6.2 可变数组类(NSMutableArray) 266

10.6.3 多维数组 268

10.7 字典(Dictionary)类型 271

10.7.1 不可变字典类(NSDictionary) 272

10.7.2 可变字典类(NSMutableDictionary) 272

10.8 日期(Date)类型 273

10.8.1 日期类型类(NSDate) 274

10.8.2 NSCalendar和NSDateComponents 276

10.8.3 应用日期类型类 278

第4篇 提高你的Objective-C知识 280

第11章 提高你的Objective-C知识——内存管理 280

11.1 内存管理规则 280

11.2 基本的内存管理 281

11.2.1 普及内存管理基础知识 281

11.2.2 几个简单的内存管理应用 282

11.2.3 何为存取方法 282

11.2.4 如何应用存取方法 284

11.2.5 致使内存管理混乱的因素 287

11.3 何为自动释放池 288

11.3.1 非Application Kit程序中的自动释放池 289

11.3.2 自动释放池和线程 290

11.3.3 作用域和嵌套自动释放池的关系 290

11.3.4 何为所有权策略 291

11.3.5 如何实现垃圾回收 291

11.4 内存中复制的处理机制 292

11.4.1 使用深复制还是浅复制 292

11.4.2 何时使用alloc和init方式 293

11.4.3 何时使用NSCopyObject 294

11.4.4 如何实现可变和不可变对象的复制 295

11.5 nib对象的内存管理 296

11.5.1 插座(IBoulet)实现的内存管理机制 296

11.5.2 iNib文件实现的内存管理机制 296

第12章 提高你的Objective-C知识——文件和数据管理 298

12.1 文件访问的指导原则 298

12.2 文件的管理 298

12.2.1 iPhone常用目录 299

12.2.2 程序目录路径的获取 299

12.2.3 更新过程中的文件保存 300

12.2.4 文件的备份和恢复 301

12.3 数据的读/写 301

12.3.1 文件数据的读/写 301

12.3.2 属性列表数据的读/写 302

12.3.3 用归档器对数据进行读/写 303

12.3.4 将数据写到Documents目录 303

12.3.5 从Documents目录对数据进行读取 304

12.4 文件保存处理机制 304

12.5 SQLite 3 305

12.5.1 数据类型 306

12.5.2 常用函数及返回编码 306

12.5.3 数据库的创建、打开和关闭 309

12.5.4 表的创建 310

12.5.5 数据操作语句(insert、update和delete) 310

12.5.6 数据库查询(select) 311

第13章 提高你的Objective-C知识——UIKit常用类及应用 313

13.1 分类 313

13.2 显示视图 314

13.2.1 标签(Label) 314

13.2.2 图片视图(ImageView) 315

13.2.3 进度条视图(ProgressView) 316

13.2.4 ActivityIndicatorView 317

13.3 控件 317

13.3.1 按钮(Button) 318

13.3.2 文本框(TextField) 320

13.3.3 滑块(Slider) 322

13.3.4 切换开关(Switch) 323

13.4 导航视图 323

13.4.1 导航栏(NavigationBar) 323

13.4.2 标签栏(TabBar) 326

13.5 警告视图和动作表单 327

13.5.1 警告视图(AlertView) 327

13.5.2 动作表单(ActionSheet) 329

13.6 文本和Web视图 331

13.6.1 文本视图(TextView) 331

13.6.2 Web视图(WebView) 332

13.7 容器 332

13.7.1 表格视图(TableView) 333

13.7.2 滚动视图(ScrollView) 337

13.7.3 工具栏(ToolBar) 340

13.8 其他常用类型 341

13.8.1 分页控件(PageContro1) 341

13.8.2 搜索栏(SearchBar) 342

第5篇 应用你的Objective-C知识 347

第14章 应用你的Objective-C知识——开发基于iPhone的弹球游戏 347

14.1 认识Cocos2D 347

14.2 如何安装Cocos2D-iPhone 348

14.3 整体框架和启动流程 349

14.3.1 项目框架 349

14.3.2 启动流程 350

14.4 技术点 353

14.4.1 何为游戏引擎 353

14.4.2 认识节点(Node) 355

14.4.3 认识场景(Scene) 356

14.4.4 认识层(Layer) 357

14.4.5 认识标签(Label) 358

14.4.6 认识动作(Action) 359

14.4.7 认识导演(Director) 360

14.4.8 精灵(Sprite) 360

14.4.9 刚体 361

14.4.10 Box2D 361

14.4.11 Box2D与Chipmunk的差异性 362

14.5 项目的设计和实现 362

14.5.1 游戏实现什么目标 362

14.5.2 项目的先期需要准备什么 363

14.5.3 AppDelegate类的设计和实现 363

14.5.4 场景和层的设计与实现 363

14.5.5 tick方法的完善 367

14.5.6 如何设计球拍(Paddle) 367

14.5.7 球反弹的优化处理 371

14.5.8 使用碰撞检测的意义 371

14.5.9 为什么添加块(Block) 374

14.5.10 给游戏添加音乐 376

14.5.11 添加游戏胜利条件 376

14.5.12 如何添加结束场景 376

14.5.13 游戏有待完善之处 379

第15章 应用你的Objective-C知识——开发基于iPad的精灵小书柜 380

15.1 系统的总体设计方案 380

15.1.1 系统组成描述 380

15.1.2 系统模块间的关系 380

15.2 技术点 381

15.2.1 视图(UIView)动画 381

15.2.2 UIScrollView、UITableView和UITableViewCell 383

15.2.3 UITextView、UIToolbar和UIBarButtonItem 385

15.3 项目框架和启动流程 386

15.3.1 项目框架 387

15.3.2 启动流程 388

15.4 项目的设计和实现 389

15.4.1 如何组装成小书柜 389

15.4.2 书和报刊如何在小书柜上展示 392

15.4.3 如何实现多面书柜的组成 394

15.4.4 书和报刊的模板展示设计 394

15.4.5 如何实现书和报刊封面与内容关联 397

15.4.6 如何实现动感的向下翻页效果 400

15.4.7 如何实现动感的向上翻页效果 401

15.4.8 如何实现手势识别处理 402

15.4.9 如何返回小书柜界面 402

15.4.10 系统有待完善之处 402