李刚疯狂讲义目录

本书全面介绍Objective-C基础语法和iOS应用开发技巧,涵盖界面编程、多媒体应用、网络编程等多个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

疯狂iOS 讲义(上) Objective-C 2.0<span "="" style="word-wrap: break-word; font-size: 18pt;">iPhone/iPad应用开发基础

本书以最新的Xcode 5 为平台,全面介绍 Objective-C 基本语法开始,详细介绍了Objective-C 的面向对象特征、 I/O 体系等知识,掌握 iOS 引用开发的基础。之后,本书将带领读者掌握 iOS 应用的 iOS 界面编程、Quartz 2D 绘图、坐标变换、Core Animation 动画等内容。最后介绍了一个《疯狂连连看》游戏实例。


疯狂iOS讲义(下)——iPhoneiPad高级应用与手游开发 内容简介:

《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》并不局限于介绍ios编程的各种理论知识,而是从“项目驱动”的角度来讲解理论。全书一共包括近百个实例,这些示范性的实例既可帮读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。

《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》为所有打算深入掌握ios编程的读者而编写,适合各种层次的ios学习者和开发者阅读,也适合作为大学教育、培训机构的ios教材。但如果只是想简单涉猎ios应用开发,则本书过于庞大,不适合阅读。

1章 iOS应用与开发环境   1

1.1  Objective-CiOS简介  2

1.1.1  Objective-C简介  2

1.1.2  iOS简介  3

1.2  搭建iOS开发环境   3

1.2.1  下载并安装XcodeSDK    4

1.2.2  安装辅助工具和文档   6

1.3  第一个Objective-C程序 6

1.3.1  使用文本编辑器开发Objective-C程序   7

1.3.2  使用Xcode工具开发Objective-C程序   9

1.4  熟悉Xcode  10

1.4.1  创建iOS项目 11

1.4.2  熟悉导航面板 12

1.4.3  熟悉检查器面板   14

1.4.4  熟悉库面板   15

1.4.5  使用Xcode的帮助系统 17

1.5  小结   20

2章 数据类型和运算符    21

2.1  注释   22

2.2  标识符和变量   23

2.2.1  分隔符   23

2.2.2  标识符规则   25

2.2.3  Objective-C关键字    25

2.3  数据类型分类   25

2.4  基本数据类型   26

2.4.1  整型 26

2.4.2  NSLog输出函数及格式字符  27

2.4.3  字符型   29

2.4.4  浮点型   30

2.4.5  枚举型   31

2.4.6  BOOL类型 32

2.5  类型转换   34

2.5.1  自动类型转换 34

2.5.2  强制类型转化 36

2.5.3  表达式类型的自动提升 36

2.6  运算符 37

2.6.1  算术运算符   37

2.6.2  赋值运算符   39

2.6.3  位运算符 40

2.6.4  扩展后的赋值运算符   42

2.6.5  比较运算符   42

2.6.6  逻辑运算符   43

2.6.7  逗号运算符   43

2.6.8 三目运算符    44

2.6.9  运算符的结合性和优先级   45

2.7  小结   46

3章 流程控制与数组  47

3.1  顺序结构   48

3.2  分支结构   48

3.2.1  if条件语句   48

3.2.2  switch分支语句   52

3.3  循环结构   54

3.3.1  while循环语句    54

3.3.2  do while循环语句 56

3.3.3  for循环  56

3.3.4  嵌套循环 59

3.4  控制循环结构   60

3.4.1  使用break结束循环   61

3.4.2  使用continue结束本次循环    61

3.4.3  使用return结束函数  62

3.5  goto语句   62

3.6  数组   64

3.6.1  定义数组 64

3.6.2  数组的初始化 65

3.6.3  使用数组 66

3.6.4  多维数组 67

3.6.5  多维数组的初始化 68

3.6.6  字符数组、字符串与结束标志   73

3.6.7  输出字符串和字符串函数   74

3.6.8  数组的应用举例   76

3.7  小结   78

4章 C语言特性   79

4.1  函数   80

4.1.1  定义函数 80

4.1.2  函数声明 83

4.1.3  函数的参数传递机制   84

4.1.4  递归函数 88

4.1.5  数组作为函数参数 89

4.1.6  内部函数与外部函数   93

4.2  局部变量与全局变量 94

4.2.1  局部变量 95

4.2.2  全局变量 96

4.2.3  外部全局变量与内部全局变量   97

4.2.4  动态存储与静态存储   99

4.3  预处理 101

4.3.1  使用#define#undef执行宏定义    101

4.3.2  带参数的宏定义   103

4.3.3  使用#ifdef#ifndef#else#endif执行条件编译   104

4.3.4  使用#if#elif#else#endif执行条件编译    106

4.3.5  #include#import    107

4.4  指针   108

4.4.1  指针的概念   108

4.4.2  指针变量及其基本用法 109

4.4.3  指针变量作为函数参数 111

4.5  指针与数组 113

4.5.1  指向数组的指针变量   113

4.5.2  指针运算 114

4.5.3  数组变量作为函数参数 116

4.5.4  指向多维数组的指针变量   118

4.6  字符串与指针   121

4.6.1  使用字符指针表示字符串   121

4.6.2  字符指针作为函数参数 122

4.7  函数与指针 123

4.7.1  用函数指针变量调用函数   123

4.7.2  用函数指针变量作为函数参数   124

4.7.3  返回指针的函数   126

4.8  指针数组和指向指针的指针   127

4.8.1  指针数组与main()函数形参 127

4.8.2  指向指针变量的指针   130

4.9  结构体 130

4.9.1  定义结构体   131

4.9.2  typedef语句  133

4.9.3  初始化结构体变量 134

4.9.4  结构体数组   135

4.10      136

4.10.1  块的基本语法    136

4.10.2  块与局部变量    137

4.10.3  直接使用块作为参数  139

4.10.4  使用typedef定义块变量类型  139

4.11  小结  140

5章 面向对象(上)  141

5.1  类和对象   142

5.1.1  定义类   142

5.1.2  对象的产生和使用 146

5.1.3  对象和指针   148

5.1.4  self关键字   150

5.1.5  id类型   153

5.2  方法详解   154

5.2.1  方法的所属性 154

5.2.2  形参个数可变的方法   155

5.3  成员变量   156

5.3.1  成员变量及其运行机制 156

5.3.2  模拟类变量   158

5.3.3  单例(Singleton)模式    159

5.4  隐藏和封装 160

5.4.1  理解封装 161

5.4.2  使用访问控制符   161

5.4.3  理解@package访问控制符   165

5.4.4  合成存取方法 166

5.4.5  使用点语法访问属性   171

5.5  键值编码(KVC)与键值监听(KVO172

5.5.1  简单的KVC    172

5.5.2  处理不存在的key  175

5.5.3  处理nil   176

5.5.4  Key路径  178

5.5.5  键值监听(KVO  179

5.6  对象初始化 182

5.6.1  为对象分配空间   182

5.6.2  初始化方法与对象初始化   183

5.6.3  便利的初始化方法 185

5.7  类的继承   187

5.7.1  继承的特点   187

5.7.2  重写父类的方法   189

5.7.3  super关键字  190

5.8  多态   193

5.8.1  多态性   193

5.8.2  指针变量的强制类型转换   196

5.8.3  判断指针变量的实际类型   197

5.9  小结   198

6章 面向对象(下)  199

6.1  Objective-C的包装类    200

6.1.1  它们不是包装类   200

6.1.2  NSValueNSNumber   201

6.2  处理对象   202

6.2.1  打印对象和description方法   202

6.2.2  ==isEqual方法 205

6.3  类别与扩展 209

6.3.1  类别(category 210

6.3.2  利用类别对类进行模块化设计   212

6.3.3  使用类别来调用私有方法   212

6.3.4  扩展(extension    214

6.4  协议(protocol)与委托 216

6.4.1  规范、协议与接口 216

6.4.2  使用类别实现非正式协议   217

6.4.3  正式协议的定义   218

6.4.4  遵守(实现)协议 219

6.4.5  协议与委托(delegate   222

6.5  使用@try处理异常   225

6.5.1  使用@try...@catch...@finally捕捉异常 226

6.5.2  访问异常信息 228

6.5.3  使用@finally回收资源 229

6.5.4  抛出异常与自定义异常类   230

6.6  Objective-C反射机制    232

6.6.1  获得Class    232

6.6.2  检查继承关系 233

6.6.3  动态调用方法 235

6.7  手动内存管理   237

6.7.1  对象的引用计数   239

6.7.2  对象所属权   241

6.7.3  方法中的保留和释放   243

6.7.4  使用自动释放池   245

6.7.5  自动释放池的销毁时机与工作过程   246

6.7.6  临时对象与事件循环中的自动释放池     248

6.7.7  手动内存管理的规则总结   249

6.8  自动引用计数   250

6.8.1  自动引用计数概述 250

6.8.2  @autoreleasepool   251

6.9  小结   251

7章 Foundation框架详解  252

7.1  字符串(NSStringNSMutableString   253

7.1.1  创建字符串   253

7.1.2  NSString的常用功能   254

7.1.3  可变字符串(NSMutableString    255

7.2  日期与时间 256

7.2.1  日期与时间(NSDate 256

7.2.2  日期格式器(NSDateFormatter    258

7.2.3  日历(NSCalendar)与日期组件(NSDateComponents 260

7.2.4  定时器(NSTimer    261

7.3  对象复制   263

7.3.1  copymutableCopy方法   263

7.3.2  NSCopyingNSMutableCopy协议    264

7.3.3  浅复制与深复制   266

7.3.4  setter方法的复制选项 268

7.4  Objective-C集合概述    269

7.5  数组(NSArrayNSMutableArray   270

7.5.1  NSArray的功能与用法  270

7.5.2  对集合元素整体调用方法   275

7.5.3  NSArray进行排序   276

7.5.4  使用枚举器遍历NSArray集合元素   278

7.5.5  快速枚举(for…in  279

7.5.6  可变数组(NSMutableArray   279

7.5.7  NSArrayKVCKVO  281

7.6  集合(NSSetNSMutableSet   282

7.6.1  NSSet的功能与用法    282

7.6.2  NSSet判断集合元素重复的标准  285

7.6.3  NSMutableSet的功能与用法 288

7.6.4  NSCountedSet的功能与用法 289

7.7  有序集合(NSOrderedSetNSMutableOrderedSet 290

7.8  字典(NSDictionaryNSMutableDictionary 291

7.8.1  NSDictionary的功能与用法 292

7.8.2  NSDictionarykey排序 295

7.8.3  NSDictionarykey进行过滤 297

7.8.4  使用自定义类作为NSDictionarykey   298

7.8.5  NSMutableDictionary的功能与用法  299

7.9  谓词   301

7.9.1  定义谓词 301

7.9.2  使用谓词过滤集合 302

7.9.3  在谓词中使用占位符参数   303

7.9.4  谓词表达式语法   305

7.9  小结   307

8章 文件I/O 308

8.1  使用NSDataNSMutableData 309

8.2  使用NSFileManager管理文件和

8.2.1  访问文件属性和内容   311

8.2.2  创建、删除、移动、复制   312

8.2.3  查看目录包含的内容   313

8.3  使用NSPathUtilities.h管理路径 314

8.4  使用ProcessInfo获取进程信息   316

8.5  使用NSFileHandle处理文件IO    317

8.6  使用NSURL读取网络资源 319

8.7  使用NSBundle处理项目相关资源  320

8.8  对象归档   322

8.8.1  使用NSKeyedArchiver归档 322

8.8.2  实现NSCoding协议    323

8.8.3  使用NSData完成自定义归档    326

8.8.4  使用归档实现深复制   329

8.9  小结   330

9章 iOS应用开发入门 331

9.1  iOS项目开始 332

9.1.1  iOS项目包含的文件    332

9.1.2  Interface Builder简介    333

9.1.3  nib文件添加控件   336

9.1.4  修改控件属性 338

9.1.5  UIView支持的属性 339

9.1.6  UILabel支持的属性    340

9.2  MVC    342

9.2.1  从程序入口开始   342

9.2.2  应用程序委托 343

9.2.3  理解iOSMVC    346

9.2.4  掌握UIViewController控制器  347

9.3  事件机制   349

9.3.1  程序获取控件的两种方式   349

9.3.2  事件处理的方式   353

9.4  Storyboard的改进之处   358

9.5  代码控制UI界面    360

9.5.1  不使用界面布局文件开发UI界面    360

实例:无界面布局文件开发iOS应用    360

9.5.2  使用代码创建UI界面  362

实例:动态添加、删除标签    362

9.4.3  自定义UI控件    364

实例:跟随手指运动的小球    365

9.6  美化iOS应用   367

9.5.1  定制iOS应用图标 367

9.5.2  设置iOS应用的启动画面   367

9.6  小结   369

10章 iOS应用的界面编程  370

10.1  UI控件概述    371

10.1.1  活动、静态和被动控件    371

10.1.2  UIControl基类介绍   372

10.2  按钮(UIButton  373

实例:丰富多彩的按钮    376

10.3  文本框(UITextField 377

实例:用户登录界面  379

10.3.1  完成输入后关闭键盘  380

10.3.2  触碰背景关闭键盘    381

10.4  多行文本控件(UITextView    382

10.4.1  UIScrollView支持的属性  383

10.4.2  使用委托对象处理UITextView事件 385

实例:导航按钮关闭虚拟键盘  385

实例:自定义键盘附件关闭虚拟键盘    387

10.4.3  自定义选择内容后的菜单  389

10.5  开关按钮(UISwitch  390

实例:使用开关控制手电筒    390

10.6  分段控件(UISegmentedControl    391

实例1:通过分段控件控制背景颜色 393

实例2:动态增加、删除分段   394

10.7  图像控件(UIImageView   395

实例1:图片浏览器   396

实例2幻灯片播放器 398

10.8  进度条    399

10.8.1  UIProgressView  399

实例:定制进度条    400

10.8.2  UIActivityIndicatorView 401

10.9  拖动条(UISlider    403

实例:通过拖动滑块改变图片透明度    404

10.10  警告框(UIAlertView)与UIActionSheet 405

10.10.1  UIAlertView的基本用法  405

10.10.2  带输入框的UIAlertView  407

10.10.3  使用UIActionSheet  409

10.11  日期选择器(UIDatePicker   411

实例:倒计时器  413

10.12  选择器(UIPickerView   415

10.12.1  单列选择器 416

10.12.2  多列选择器 417

10.12.3  相互依赖的多列选择器   419

10.12.4  自定义选择器视图   421

实例:老虎机游戏    421

10.13  微调器(UIStepper  426

10.14  网页控件(UIWebView    428

实例:迷你浏览器    430

10.15  工具条(UIToolbar  431

实例:自定义工具条控件  433

10.16  表格(UITableView)与表格控制器 (UITableViewController   435

10.16.1  简单表格 437

10.16.2  处理单元格的选中   440

实例:编辑选中行    441

10.16.3  定制表格行 446

实例1:继承UITableViewCell定制表格行   446

实例2:使用动态单元格原型定制表格行 449

实例3:利用xib文件定制表格行   451

10.16.4  编辑表格   454

10.16.5  多分区表格以及分区索引 459

10.16.6  直接使用   UITableViewController   461

10.16.7  静态单元格 464

10.16.8  使用iOS 6新增的UIRefresh Controller刷新表格  465

10.17  搜索条(UISearchBar    467

10.17.1  使用搜索条 468

10.17.2  使用UISearchDisplayController  471

实例:下拉列表显示搜索结果  471

10.18  导航条(UINavigationBar)与导航 条控制器(UINavigationController   475

10.18.1  使用导航条 475

10.18.2  使用UINavigationController 477

实例:查看、编辑图书信息    479

10.18.3  使用segue控制过渡 484

10.18.4  使用segue控制导航 487

10.19  网格(UICollectionView)与网格控制器(UICollectionViewController   490

10.19.1  UICollectionView的功能与用法   492

10.19.2  使用UICollectionViewDelegate FlowLayout定制布局   497

实例:单元格大小不同的网格  497

10.19.3  扩展UICollectionViewLayout定制布局    498

实例:环形布局的UICollectionView    499

10.19.4  多分区网格 502

实例:带页眉、页脚的多分区网格  502

10.19.5  直接使用UICollectionViewController 505

10.20  标签条(UITabBar)与标签页控制器(UITabBarController   509

10.20.1  使用UITabBar   509

10.20.2  使用UITabBarController 511

10.20.3  Storyboard中使用UITabBarController  514

10.21  页控件(UIPageControl)与页控制器(UIPageViewController    515

10.21.1  UIPageControlUIScrollView结合使用   515

10.21.2  使用UIPageViewController   519

10.22  iPad应用开发 523

10.22.1  使用iPad专用控件:UISplitViewController 523

10.22.2  使用UIPopoverController实现浮动窗口   530

10.22.3  开发同时兼容iPhoneiPad 的应用   532

10.23  小结 535

11章 管理iOS应用的运行 537

11.1  自动旋转机制  538

11.1.1  配置应用支持的方向  538

11.1.2  指定视图控制器支持的方向    540

11.2  旋转时重构用户界面    541

11.3  旋转时切换视图    543

11.4  iOS应用的生命周期 546

11.4.1  应用程序的状态  547

11.4.2  应用程序启动过程    548

11.4.3  程序入口:main函数  549

11.4.4  响应中断    550

11.4.5  进入后台    552

11.4.6  返回前台运行    553

11.4.7  应用程序终止    554

11.4.8  Main Run Loop   554

11.5  小结  555

12章 图形、图像与动画   556

12.1  使用UIImageCGImage处理位图 557

12.1.1  显示动画    557

实例:蝴蝶飞舞  559

12.1.2  CGImageCGImageRef    559

12.2  Quartz 2D绘图 560

12.2.1  Quartz 2D绘图基础:CGContextRef 560

12.2.2  绘制几何图形    563

12.2.3  点线模式    565

12.2.4  绘制文本    569

12.2.5  设置阴影    572

12.2.6  使用路径    573

实例:绘制任意多角星    577

12.2.7  绘制曲线    578

实例:使用曲线绘制多瓣花朵  579

12.2.8  在内存中绘图    580

实例:绘图板    583

12.2.9  绘制位图    587

实例:扩展UIImage的功能    588

12.3  图形变换  593

12.3.1  使用坐标变换    593

12.3.2  坐标变换与路径结合使用  594

实例:雪花飘飘  594

12.3.3  使用矩阵变换    596

12.4  控制叠加模式  599

12.5  处理填充  604

12.5.1  渐变填充    605

12.5.2  模式填充    609

12.6  使用Core Image滤镜   614

12.7  动画  621

12.7.1  Core Animation动画基础  621

12.7.2  使用CALayer 622

12.7.3  使用CATransition控制过渡动画   625

12.7.4  使用属性动画    629

12.7.5  控制移动路径    634

实例:绕圈游动的小鱼    634

12.8  小结  636

13章 疯狂连连看 637

13.1  游戏简介  638

13.2  开发游戏界面  639

13.2.1  开发界面布局    639

13.2.2  开发游戏界面控件    639

13.2.3  处理方块之间的连接线    644

13.3  游戏的状态数据模型    646

13.3.1  定义数据模型    646

13.3.2  初始化游戏状态数据  647

13.4  加载界面的图片    651

13.5  实现游戏视图控制器    653

13.6  实现游戏逻辑  655

13.6.1  定义FKGameService的接口代码    655

13.6.2  实现FKGameService   656

13.6.3  获取触碰点的方块    657

13.6.4  判断两个方块是否可以相连    658

13.6.5  定义获取通道的工具方法  659

13.6.6  没有转折点的横向连接    661

13.6.7  没有转折点的纵向连接    661

13.6.8  一个转折点的连接    662

13.6.9  两个转折点的连接    665

13.6.10  找出最短距离   671

13.7  小结  673


疯狂ios讲义(下)——iphone/ipad高级应用与手游开发 目录:
第1章 多点触摸与手势检测        1
1.1 响应者链        2
1.2 响应触碰方法        3
1.3 使用手势处理器(uigesturerecognizer)        3
1.3.1 使用uitapgesturerecognizer处理点击手势        4
1.3.2 使用uipinchgesturerecognizer处理捏合手势        6
实例:通过捏合手势缩放图片        7
1.3.3 使用uirotationgesturerecognizer处理旋转手势        9
实例:通过旋转手势旋转图片        9
1.3.4 使用uiswipegesturerecognizer处理轻扫手势        10
实例:贪食蛇        12
1.3.5 使用uipangesturerecognizer处理拖动手势        18
1.3.6 使用uilongpressgesturerecognizer处理长按手势        19
实例:长按添加按钮        20
1.4 创建和使用自定义手势处理器        21
1.4.1 开发自定义手势处理器        21
1.4.2 使用自定义手势处理器        23
1.5 本章小结        24
第2章 国际化        25
.2.1 ios应用国际化的基础        26
2.1.1 ios应用的国际化思路        26
2.1.2 objective-c国际化支持的语言和国家        28
2.2 国际化界面设计文件        29
2.3 国际化应用程序的显示名称        32
2.4 国际化图片        34
2.5 国际化文本        35
2.6 本章小结        38
第3章 ios的数据存储与io        39
3.1 应用程序沙盒        40
3.1.1 获取documents目录        41
3.1.2 获取tmp目录        41
3.1.3 文件保存策略思考        41
3.2 应用程序参数与用户默认设置        42
3.2.1 使用settings bundle        42
3.2.2 使用nsuserdefaults读取、保存应用程序参数        50
3.3 属性列表        54
实例:备忘录        55
3.4 对象归档和原生i/o api        58
3.5 使用sqlite 3数据库        58
3.5.1 ios的sqlite编程        58
3.5.2 创建数据库和表        63
3.5.3 使用sql语句执行查询        63
实例:英文生词本        64
3.5.4 使用sqlite3工具        67
3.5.5 使用sqlite manager管理数据库        69
3.6 使用core data框架        71
3.6.1 core data简介        71
3.6.2 初始化core data项目        73
3.6.3 设计实体模型        76
3.6.4 使用core data实现数据的增、删、改、查        78
3.6.5 管理实体的关联关系        84
实例:图书管理系统        84
3.7 本章小结        95
第4章 多媒体应用开发        96
4.1 音频和视频的播放        97
4.1.1 使用system sound services播放音效        97
4.1.2 使用avaudioplayer播放音乐        98
4.1.3 使用mpmediapickercontroller选择系统音乐        102
实例:简单音乐播放器        103
4.1.4 使用mpmovieplayercontroller播放视频        106
4.2 使用avaudiorecorder录制音频        108
4.3 拍照和录制视频        112
4.3.1 使用uiimagepickercontroller拍照和录制视频        112
4.3.2 使用avfoundation拍照和录制视频        116
实例:完全自定义的相机        118
4.4 使用avfoundation生成视频缩略图        135
4.5 本章小结        137
第5章 管理手机        138
5.1 使用addressbook管理联系人        139
5.1.1 删除联系人        142
5.1.2 添加联系人        144
5.1.3 修改联系人        147
5.2 使用addressbookui管理联系人        151
5.2.1 使用abnewpersonviewcontroller添加联系人        153
5.2.2 使用abunknownpersonviewcontroller显示未知联系人        154
5.2.3 使用abpeoplepickernavigationcontroller选择联系人        156
5.2.4 使用abpersonviewcontroller显示指定联系人        157
5.3 使用uiapplication打电话、发短信        159
5.4 使用mfmessagecomposeviewcontroller发短信        160
5.5 使用mfmailcomposeviewcontroller发送邮件        162
5.6 本章小结        165
第6章 加速计与陀螺仪        166
6.1 ios支持的加速计和陀螺仪        167
6.1.1 ios加速计和陀螺仪的理论基础        167
6.1.2 基于代码块方式获取加速度数据、陀螺仪数据、磁场数据        168
6.1.3 主动请求获取加速度数据、陀螺仪数据、磁场数据        172
实例:怪物足球        173
6.2 感知设备移动        178
实例:水平仪        181
6.3 ios 7新增的计步器        184
6.4 ios 7新增的cmmotionactivitymanager        186
6.5 本章小结        188
第7章 多线程        189
7.1 线程概述        190
7.1.1 线程和进程        190
7.1.2 多线程的优势        191
7.2 使用nsthread实现多线程        192
7.2.1 创建和启动线程        192
7.2.2 线程的状态        194
7.2.3 终止子线程        194
7.2.4 线程睡眠        195
实例:使用线程下载网络图片        196
7.2.5 改变线程优先级        197
7.3 线程同步与线程通信        199
7.3.1 线程安全问题        199
7.3.2 使用@synchronized实现同步        201
7.3.3 释放对同步监视器的锁定        203
7.3.4 同步锁(nslock)        203
7.3.5 使用nscondition控制线程通信        205
实例:生产者-消费者        205
7.4 使用gcd实现多线程        208
7.4.1 创建队列        209
7.4.2 异步提交任务        210
实例:使用gcd下载图片        212
7.4.3 同步提交任务        213
7.4.4 多次执行的任务        214
7.4.5 只执行一次的任务        215
7.5 后台运行        216
7.5.1 进入后台时释放内存        216
实例:疯狂飞机大战        216
7.5.2 进入后台时保存状态        223
7.5.3 请求更多的后台时间        223
7.6 使用nsoperation与nsoperationqueue实现多线程        225
7.6.1 使用nsinvocationoperation和nsblockoperation        226
实例:使用nsblockoperation下载图片        226
7.6.2 定义nsoperation子类        227
7.7 本章小结        229
第8章 ios网络应用编程        230
8.1 检测网络状态        231
8.1.1 检查网络状态        231
8.1.2 监听网络状态改变        234
8.2 使用cfnetwork实现tcp协议的通信        235
8.2.1 ip地址与端口号        236
8.2.2 tcp协议基础        236
8.2.3 使用cfsocket实现tcp服务器端        237
8.2.4 使用cfsocket实现tcp客户端        241
实例:网络聊天程序        244
8.2.5 使用cocoaasyncsocket实现tcp客户端        247
8.3 使用nsurlconnection        250
8.3.1 使用nsurlconnection从网络获取数据        250
8.3.2 使用nsmutableurlrequest向服务器发送数据        253
8.4 xml解析        255
8.4.1 dom与sax        255
8.4.2 使用nsxmlparser解析xml文档        257
8.4.3 使用libxml2解析xml文档        262
8.4.4 使用gdataxml解析xml文档        266
8.4.5 使用gdataxml生成、修改xml文档        268
8.5 json解析        271
8.5.1 json的基本知识        271
8.5.2 使用nsjsonserialization处理json数据        274
8.5.3 使用sbjson解析json数据        274
8.5.4 使用jsonkit解析json数据        275
8.6 使用afnetworking实现网络通信        280
8.6.1 提交get请求与提交post请求        280
实例:访问被保护资源        281
8.6.2 处理json或plist响应        284
8.6.3 处理xml响应        288
8.6.4 上传文件        290
8.7 使用asihttprequest框架实现网络编程        293
8.7.1 发送同步或异步的get请求        293
8.7.2 使用代码块        296
8.7.3 使用nsoperationqueue管理请求        297
8.7.4 发送请求参数和文件上传        299
实例:天气预报        300
8.8 本章小结        311
第9章 使用corelocation定位        312
9.1 ios的定位支持        313
9.1.1 gps卫星定位        313
9.1.2 基站定位        314
9.1.3 wifi定位        314
9.2 获取定位信息 314
9.2.1 获取位置信息        315
9.2.2 使用ios模拟器模拟位置        318
9.2.3 监控行车速度和行车距离        318
9.3 方向监测        320
实例:指南针        322
9.4 区域监测        323
9.5 本章小结        325
第10章 使用mapkit开发地图服务        326
10.1 使用mapkit框架        327
10.1.1 使用mkmapview控件        328
10.1.2 指定地图显示中心和显示区域        329
10.1.3 使用ios 7新增的mkmapcamera        332
10.2 根据地址定位        333
10.2.1 地址解析与反向地址解析        333
10.2.2 根据地址定位        337
10.3 在地图上添加锚点        340
10.3.1 添加简单的锚点        340
10.3.2 添加自定义锚点        343
10.4 在地图上添加覆盖层        345
10.4.1 添加几何覆盖层        346
10.4.2 使用ios 7新增的mktileoverlay覆盖层        348
10.5 使用ios 7新增的mkdirections获取导航路线        350
实例:行车导航仪        351
10.6 本章小结        354
第11章 推送机制        355
11.1 使用nsnotificationcenter通信        356
11.1.1 使用nsnotificationcenter监听系统组件的通知        358
11.1.2 使用nsnotificationcenter监听自定义通知        359
11.2 ios本地通知        361
11.3 ios远程推送通知        364
11.3.1 开发push客户端应用        366
11.3.2 开发push服务端程序        377
11.4 本章小结        381
第12章 icloud服务与应用        382
12.1 icloud入门        383
12.1.1 为应用开启icloud服务        384
12.1.2 使用nsmetadataquery查询文档        389
12.1.3 添加文档        393
12.1.4 编辑文档        395
12.1.5 删除文档        397
12.2 使用icloud保存云端首选项        398
12.3 本章小结        401
第13章 使用cocos2d开发2d游戏        402
13.1 cocos2d简介        403
13.1.1 cocos2d的特点        403
13.1.2 cocos2d的主要功能        403
13.2 cocos2d的下载与安装        404
13.2.1 下载cocos2d        404
13.2.2 安装cocos2d        405
13.2.3 使用cocos2d-iphone的帮助文档        405
13.2.4 cocos2d中内置的项        406
13.3 创建cocos2d项目        407
13.3.1 helloworld cocos2d项目        407
13.3.2 cocos2d项目如何支持arc        408
13.3.3 cocos2d项目结构和代码分析        413
13.4 ccnode节点类        419
13.4.1 ccnode类的属性        419
13.4.2 ccnode类的方法        420
13.5 ccscene场景类        423
13.5.1 cctransitionscene 场景切换        423
13.5.2 cocos2d支持的场景过渡效果        424
13.6 cclayer类        424
13.6.1 cclayer类的属性        425
13.6.2 cclayer类的常用方法        425
13.6.3 cclayer类的作用        425
13.6.4 cclayercolor类的属性和方法        425
13.6.5 cclayergradient渐变色层类        426
13.6.6 ccmenu菜单类        426
13.7 ccdirector导演类        429
13.7.1 ccdirector导演类的属性        430
13.7.2 ccdirector导演类的方法        430
13.8 cctexture纹理类        431
13.8.1 纹理的相关概念        431
13.8.2 纹理相关的类        431
13.9 ccsprite精灵类        432
13.9.1 ccsprite精灵类的属性        432
13.9.2 ccsprite精灵类的方法        432
13.9.3 ccspriteframe精灵帧        435
13.9.4 ccspriteframecache精灵帧缓存        436
13.9.5 ccspritebatchnode精灵表单        436
13.9.6 制作精灵表单        438
13.9.7 精灵表单示例        440
13.10 cocos2d中的动作        442
13.10.1 cocos2d中的动作类        443
13.10.2 基本动作        444
13.10.3 组合动作        453
13.10.4 ease动作        454
13.10.5 延迟动作        456
13.10.6 方法回调动作        456
13.10.7 代码块调用动作        460
13.11 cocos2d中的动画        462
13.11.1 cocos2d中动画相关的类        462
13.11.2 简单动画效果        463
13.11.3 使用精灵表单实现动画效果        464
13.12 cocos2d中的文本        466
13.12.1 cclabelttf类        466
13.12.2 cclabelbmfont类        467
13.13 cocos2d中的声音        470
13.13.1 simpleaudioengine        470
13.13.2 游戏中的声音设置选项功能实现        474
13.14 疯狂打飞机游戏        477
13.14.1 开始前的准备工作        477
13.14.2 添加游戏菜单项功能        478
13.14.3 预加载游戏资源        480
13.14.4 玩家飞机飞行效果        485
13.14.5 玩家飞机touch实现        487
13.14.6 背景滚动效果        488
13.14.7 添加敌机        491
13.14.8 玩家飞机添加子弹并射击        494
13.14.9 添加背景音乐        498
13.14.10 添加游戏积分统计        498
13.14.11 添加游戏大boss        500
13.15 本章小结        504
第14章 粒子效果、瓦片地图和物理引擎        505
14.1 粒子系统相关的类        506
14.1.1 ccparticlesystem类        506
14.1.2 ccparticlesystemquad类        511
14.1.3 ccparticlebatchnode类        512
14.2 cocos2d中内置的粒子系统        512
14.2.1 使用cocos2d内置的粒子系统        513
14.2.2 手动创建粒子系统类        514
14.3 使用particle designer生成粒子效果        517
14.3.1 particle designer粒子工具的使用        518
14.3.2 使用plist文件创建粒子系统        520
14.4 瓦片地图        520
14.4.1 下载和安装tiled地图编辑器        521
14.4.2 使用tiled绘制地图        522
14.5 tiled地图相关的类        527
14.5.1 cctmxtiledmap类        527
14.5.2 cctmxlayer类        529
14.5.3 cctmxobjectgroup类        530
14.6 在项目中使用tiled地图        530
14.7 真实手游:萌仙        535
14.7.1 设计地图场景        535
14.7.2 载入地图        535
14.7.3 地图的移动        537
14.7.4 物体遮挡效果        539
14.7.5 设置障碍物        542
14.7.6 寻路算法        544
14.7.7 随机出现怪物        549
14.7.8 玩家和怪物进行战斗        552
14.8 box2d物理引擎        559
14.8.1 物理引擎概述        559
14.8.2 box2d的核心概念        559
14.8.3 box2d常用的属性和方法        562
14.8.4 box2d模板项目hellobox2d        563
14.8.5 hellobox2d模板项目代码分析        565
14.8.6 cocos2d和box2d        573
14.8.7 box2d开发步骤        575
14.9 开发box2d项目        575
14.10 愤怒的小鸟        581
14.10.1 开始前的准备工作        581
14.10.2 制作游戏启动画面        581
14.10.3 进度条制作        582
14.10.4 游戏中的粒子效果        585
14.10.5 游戏选关操作        590
14.10.6 设计关卡数据        594
14.10.7 设计精灵类        596
14.10.8 游戏主界面        601
14.10.9 弹弓发射小鸟        604
14.10.10 整合box2d物理引擎        609
14.10.11 游戏过关设计        613
14.11 本章小结        616  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值