欢迎访问学天下, 学习、交流与分享 !
当前位置:主页 > 实用资料 >

疯狂的ios讲义上 pdf版

收藏本页
  • 主要内容
时间:2019-11-28 00:50 作者:cs123 点击:
精心推荐:
软件标签: 疯狂的ios讲义 讲义

疯狂iOS讲义上(Objective-C 2.0与iPhone iPad应用开发基础)是一款专业的ios应用开发讲解教学,在这里详细的介绍了Objective-C 的面向对象特征、Foundation 框架的核心类库用法、Objective-C的基本语法结构、Foundation 框架的核心类库用法、文件 I/O 体系等知识等,让你可以轻松的掌握ios的开发基础,对基础有着一定的了解。

疯狂的讲义上pdf

内容介绍

《疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础》并不局限于介绍 iOS 编程的各种理论知识,而是从“项目驱动”的角度来讲授理论,全书一共包括近百个实例

这些示范性的实例既可帮读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。

《疯狂iOS 讲义(上) Objective-C 2.0与iPhone/iPad应用开发基础》为所有打算深入掌握 iOS 编程的读者而编写,适合各层次的 iOS 学习者和开发者阅读,也适合作为大学教育、培训机构的 iOS 教材。

但如果只是想简单涉猎 iOS 应用开发,则本书过于庞大,不适合阅读。

全书从 Objective-C 基本语法开始,详细介绍了 Objective-C 的基本语法结构、Objective-C 的面向对象特征、Foundation 框架的核心类库用法、文件 I/O 体系等知识,掌握 Objective-C 语言是 iOS 引用开发的基础。

本书将带领读者掌握 iOS 应用开发的基本理论以及 iOS 应用的 MVC 设计和事件处理编程,重点介绍 iOS 界面编程、iOS 应用的生命周期、Quartz 2D 绘图、坐标变换、Core Image 滤镜、Core Animation 动画等内容。

疯狂iOS讲义上目录

第1章 iOS应用与开发环境        1

1.1 Objective-C与iOS简介        2

1.1.1 Objective-C简介        2

1.1.2 iOS简介        3

1.2 搭建iOS开发环境        3

1.2.1 下载并安装Xcode和SDK        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)与键值监听(KVO)172

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 NSValue和NSNumber        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 字符串(NSString与NSMutableString)        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 copy与mutableCopy方法        263

7.3.2 NSCopying与NSMutableCopy协议        264

7.3.3 浅复制与深复制        266

7.3.4 setter方法的复制选项        268

7.4 Objective-C集合概述        269

7.5 数组(NSArray与NSMutableArray)        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 NSArray的KVC与KVO        281

7.6 集合(NSSet与NSMutableSet)        282

7.6.1 NSSet的功能与用法        282

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

7.6.3 NSMutableSet的功能与用法        288

7.6.4 NSCountedSet的功能与用法        289

7.7 有序集合(NSOrderedSet与NSMutableOrderedSet)        290

7.8 字典(NSDictionary与NSMutableDictionary)        291

7.8.1 NSDictionary的功能与用法        292

7.8.2 对NSDictionary的key排序        295

7.8.3 对NSDictionary的key进行过滤        297

7.8.4 使用自定义类作为NSDictionary的key        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 使用NSData与NSMutableData        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 理解iOS的MVC        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 UIPageControl与UIScrollView结合使用        515

10.21.2 使用UIPageViewController        519

10.22 iPad应用开发        523

10.22.1 使用iPad专用控件:UISplitViewController 523

10.22.2 使用UIPopoverController实现浮动窗口        530

10.22.3 开发同时兼容iPhone与iPad 的应用        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 使用UIImage和CGImage处理位图        557

12.1.1 显示动画        557

实例:蝴蝶飞舞        559

12.1.2 CGImage与CGImageRef        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

下载地址地址隐藏,输入验证码自动跳转下载(不收费,无需登录,看不清验证码请点击图片)