
●目 录:章iOS基础视频讲解:23分钟1.1iOS发展历史1.2iOS特性1.3iOS架构1.3.1Cocoa Touch层1.3.2媒体层1.3.3Core Services层1.3.4Core OS层1.4Objective-C概述1.5比较iOS和Mac OS1.5.1UIKit与AppKit的对比1.5.2Foundation框架的差异1.5.3其他框架的改变1.6iOS开发环境和工具1.6.1了解Xcode1.6.2Xcode导航面板1.6.3Xcode检查器面板1.6.4Xcode库面板1.6.5使用帮助1.7使用Xcode1.7.1案例:编写个Objective-C程序1.7.2案例:创建个项目1.8小结第2章数据类型和运算符视频讲解:88分钟2.1数据类型分类2.2简单数据类型2.2.1整型2.2.2案例:输出格式字符2.2.3浮点型2.2.4字符型2.2.5案例:定义字符串2.2.6枚举型2.2.7布尔型2.3类型转换2.3.1案例:自动类型转换2.3.2案例:强制类型转换2.3.3案例:自动提升2.4运算符2.4.1运算符分类2.4.2运算优先级2.4.3算术运算符2.4.4赋值运算符2.4.5位运算符2.4.6比较运算符2.4.7逻辑运算符2.4.8逗号运算符2.4.9条件运算符2.5小结第3章控制语句视频讲解:44分钟3.1条件语句3.1.1if语句3.1.2案例:分支语句应用3.1.3switch语句3.2循环语句3.2.1while语句3.2.2do-while语句3.2.3for语句3.2.4案例:for语句应用3.2.5案例:嵌套循环3.3控制语句3.3.1break语句3.3.2continue语句3.3.3return语句3.3.4案例:使用goto语句3.4预处理命令3.4.1宏定义3.4.2运算符3.4.3#import语句3.4.4条件编译3.5小结第4章C语言特性视频讲解:122分钟4.1数组4.1.1定义数组4.1.2初始化数组4.1.3使用数组4.1.4定义多维数组4.1.5初始化多维数组4.1.6使用字符数组4.1.7案例实战4.2函数4.2.1定义函数4.2.2声明函数4.2.3函数类型4.2.4函数参数4.2.5函数返回值4.2.6案例实战4.3块4.3.1定义块4.3.2块作用域4.3.3使用块变量类型4.4结构4.4.1定义结构4.4.2使用typedef4.4.3初始化结构4.4.4使用结构体数组4.4.5嵌套结构4.5指针4.5.1认识指针4.5.2定义指针变量4.5.3指针的基本运算4.5.4指针变量作为函数参数4.5.5对象和指针的关系4.6数组和指针4.6.1指向数组的指针变量4.6.2指针运算4.6.3案例实战4.7案例应用4.7.1使用字符串指针4.7.2使用函数指针4.8小结第5章类视频讲解:107分钟5.1定义类5.1.1认识类5.1.2接口5.1.3实现5.1.4案例:定义类5.2使用类5.2.1实例化5.2.2指针5.2.3self5.2.4id类型5.2.5类名的使用5.2.6类的比较5.3变量5.3.1局部变量5.3.2全局变量5.3.3实例变量5.3.4静态变量5.3.5变量的存储类别5.3.6案例:定义单例类5.3.7案例:定义类变量5.4属性5.4.1属性的声明5.4.2属性的实现5.4.3属性类型和相关函数5.4.4属性类型编码5.4.5属性重声明5.4.6子类中的属性5.4.7案例:使用封装5.4.8案例:使用访问控制符5.4.9案例:合成存取5.4.10案例:点语法存取5.5方法5.5.1定义方法5.5.2方法的所属性5.5.3案例:设计可变形参的方法5.6继承5.6.1继承实例变量5.6.2方法的继承5.6.3方法的重写5.6.4类别和扩展5.6.5案例:类继承5.6.6案例:重写5.6.7案例:使用super关键字5.7异常处理5.7.1启用异常处理5.7.2异常处理5.7.3捕捉不同类型的异常5.7.4抛出异常5.8类型5.8.1静态指定类型5.8.2类型的自查5.9根类5.9.1NSObject简介5.9.2根类和协议5.9.3根类方法5.9.4根类接口规范5.9.5根类实例方法和类方法5.10小结第6章消息和协议6.1消息6.1.1定义消息6.1.2发送消息6.1.3接收实例变量6.1.4获取方法地址6.1.5objc_msgSend()函数6.1.6使用隐藏的参数6.1.7消息转发6.1.8消息转发与多重继承6.1.9消息代理对象6.1.10消息转发与类继承6.1.11多态性6.1.12动态绑定6.1.13解析动态方法6.1.14动态加载6.1.15“.”语法格式6.2协议6.2.1预定义声明接口6.2.2预定义方法6.2.3声明接口6.2.4非层级相似性6.2.5正式协议6.2.6非正式协议6.2.7协议对象6.2.8采用协议6.2.9服从协议6.2.10类型校验6.2.11嵌套协议6.2.12引用其他协议6.3小结第7章对象7.1创建对象7.1.1分配对象7.1.2初始化对象7.1.3dealloc方法7.1.4类工厂方法7.2对象动态类型7.3对象可变性7.3.1可变或不可变对象7.3.2用可变对象编程7.4对象通信7.4.1面向对象程序中的通信7.4.2IBoutlet变量7.4.3委托和数据源7.4.4目标-动作机制7.4.5绑定7.4.6通告7.5使用对象7.5.1对象所有权策略7.5.2保留计数7.5.3自动释放7.5.4共享对象的有效性7.5.5存取方法7.5.6回收对象7.5.7通过引用返回的对象7.6小结第8章Foundation框架基础视频讲解:133分钟8.1认识Foundation框架8.2使用Foundation框架8.3数字类型8.3.1数字类型类NSNumber8.3.2比较int、NSInteger、NSUInteger和NSNumber8.4字符串类型8.4.1不可变字符串类NSString8.4.2可变字符串类NSMutableString8.4.3案例实战8.5日期类型8.5.1日期类型类NSDate8.5.2NSCalendar和NSDateComponents8.5.3案例实战8.6数组类型8.6.1不可变数组类NSArray8.6.2可变数组类NSMutableArray8.6.3多维数组8.6.4案例:操作数组8.6.5案例:操作素8.6.6案例:数组排序8.6.7案例:遍历数组8.6.8案例:快速枚举8.6.9案例:可变数组8.7字典类型8.7.1不可变字典类NSDictionary8.7.2可变字典类NSMutableDictionary8.7.3案例:使用字典8.7.4案例:字典排序8.7.5案例:字典过滤8.7.6案例:使用可变字典8.8案例实战:集合类型8.8.1使用NSSet8.8.2检测NSSet重复值8.8.3可变集合8.8.4计数集合8.8.5有序集合8.9小结第9章iOS应用开发核心9.1iOS应用架构9.1.1生命周期9.1.2主函数9.1.3应用委托9.1.4nib文件9.1.5事件处理周期9.1.6基本设置模式9.2运行环境处理机制9.2.1快速启动9.2.2安全处理9.2.3内存处理9.2.4节电处理9.3程序包9.3.1信息属性9.3.2程序图标和启动图像9.4定制行为9.4.1景观模式启动9.4.2与其他程序通信9.4.3URL模式9.4.4处理URL请求9.4.5偏好设置9.4.6关闭锁定9.5键盘管理9.5.1接收键盘通告9.5.2显示键盘9.5.3取消键盘9.5.4移动键盘9.6国际化9.7优化处理9.7.1不要阻塞主线程9.7.2有效使用内存9.7.3减少内存印迹9.7.4恰当分配内存9.7.5浮点运算9.7.6减少电力消耗9.7.7代码优化9.8小结0章iOS开发入门视频讲解:63分钟10.1熟悉iOS项目10.1.1文件结构10.1.2新建xib界面文件10.1.3认识xib界面10.1.4添加控件10.1.5编辑控件属性10.1.6UIView属性10.1.7UILabel属性10.2iOS运行机制10.2.1了解MVC10.2.2入口函数10.2.3应用程序委托10.2.4视图控制器10.3事件处理机制10.3.1获取控件10.3.2事件处理10.4故事板10.5案例实战10.5.1动态更新文本10.5.2添加和删除控件10.5.3设计跟随手指的小球10.5.4设计应用项目图标10.5.5设计欢迎界面10.6小结1章窗口和视图11.1认识窗口和视图11.1.1窗口11.1.2视图11.1.3视图控制器11.2视图架构11.2.1视图交互模型11.2.2视图渲染架构11.2.3Core Animation11.2.4视图的层11.2.5动画支持11.2.6视图坐标系统11.2.7边框、边界和中心11.2.8坐标系统变换11.2.9内容模式与比例缩放11.2.10自动尺寸调整11.3创建和管理视图层次11.3.1视图层次11.3.2创建视图对象11.3.3添加和移除子视图11.3.4坐标转换11.3.5标识视图11.4动态控制视图11.4.1实现视图动画11.4.2配置动画的参数11.4.3配置动画的委托11.4.4响应布局的变化11.4.5重画视图的内容11.4.6隐藏视图11.5创建定制视图11.5.1初始化定制视图11.5.2描画视图内容11.5.3响应事件11.5.4清理视图对象11.6小结2章视图控制器视频讲解:43分钟12.1视图控制器基础12.1.1视图控制器的功能12.1.2屏幕、窗口和视图素12.1.3视图管理机制12.1.4视图控制器分类12.1.5内容展示方式12.1.6视图控制器混合应用12.2视图控制器生命周期12.2.1初始化视图12.2.2加载和卸载视图12.3标准视图控制器12.3.1标准视图控制器概述12.3.2使用标准视图控制器12.4分割视图控制器12.4.1分割视图控制器概述12.4.2使用分割视图控制器12.5导航控制器12.5.1导航控制器概述12.5.2使用导航控制器12.6选项卡控制器12.6.1选项卡控制器概述12.6.2使用选项卡控制器12.7页视图控制器12.7.1页视图控制器概述12.7.2使用页视图控制器12.8小结3章事件13.1触摸事件13.1.1触摸模型13.1.2触摸与事件13.1.3事件传递13.1.4事件响应过程13.1.5事件处理方法13.1.6案例:处理多点触摸事件13.1.7案例:检测碰擦手势13.1.8案例:处理复杂多点触摸序列13.2运动事件13.3复制、剪切和粘贴13.3.1认识粘贴板13.3.2数据表示13.3.3选择菜单13.3.4复制和剪切13.3.5粘贴13.3.6消除菜单13.4小结4章使用控件(上)视频讲解:117分钟14.1UIKit概述14.1.1视图分类14.1.2应用界面构成14.1.3UIView视图14.1.4UIControl控件14.2按钮14.2.1添加按钮14.2.2案例:定义按钮14.2.3案例:配合使用标签和按钮14.3文本框14.3.1添加文本框14.3.2案例:设计登录表单14.3.3案例:关闭虚拟键盘14.4多行文本14.4.1添加多行文本框14.4.2案例:设计内容简介表单14.4.3案例:设计导航按钮控制虚拟键盘14.4.4案例:自定义虚拟键盘键14.4.5案例:自定义快捷编辑菜单14.5开关按钮14.5.1添加开关按钮14.5.2案例:使用开关按钮控制界面背景14.6分段控件14.6.1添加分段控件14.6.2案例:使用分段控件控制界面背景14.6.3案例:动态控制分段控件14.7滑块控件14.7.1添加滑块控件14.7.2案例:设计控件14.7.3案例:使用滑块控制透明度14.8图像控件14.8.1添加图像控件14.8.2案例:预览图片14.8.3案例:设计幻灯片14.9进度条14.9.1添加进度条14.9.2案例:设计进度条14.10活动指示器14.10.1添加活动指示器14.10.2案例:设计活动指示器和进度条14.11警告框14.11.1创建警告框14.11.2案例:设计警告框14.12操作表14.13日期选择器14.13.1添加日期选择器14.13.2案例:设计倒计时14.14通用选择器14.14.1添加通用选择器14.14.2案例:设计单列选择器14.14.3案例:自定义选择器视图14.15微调器14.15.1添加微调器14.15.2案例:设计微调器14.16网页控件14.16.1添加网页控件14.16.2案例:设计网页控件14.17小结5章使用控件(下)视频讲解:117分钟15.1工具条15.1.1添加工具条15.1.2案例:设计工具条15.2搜索条15.2.1添加搜索条15.2.2案例:设计搜索条15.2.3案例:设计显示列表15.3导航条15.3.1使用导航条15.3.2案例:使用UINavigationController15.4表格控制器15.4.1表视图概述15.4.2添加表格15.4.3自定义单格15.4.4案例:设计表格15.4.5案例:编辑单格15.4.6案例:编辑表格15.4.7案例:表格分区15.5标签页15.5.1使用UITabBar15.5.2案例:设计标签页115.5.3案例:设计标签页215.6页控件15.6.1分页控件15.6.2案例:使用UIPageControl15.6.3案例:使用UIPageViewController15.7小结6章移动绘图视频讲解:35分钟16.1基本概念16.1.1绘制周期16.1.2坐标系统16.1.3图形上下文16.1.4点和像素16.1.5颜色空间16.1.6图像格式16.1.7定制绘制16.1.8绘制性能16.1.9图像质量16.2Quartz 2D16.2.1页面16.2.2图形上下文16.2.3路径16.2.4颜色空间16.2.5变换16.2.6阴影16.2.7梯度16.2.8透明层16.2.9使用PDF文档16.3案例实战16.3.1案例:绘制图形16.3.2案例:绘制线条16.3.3案例:绘制文本16.3.4案例:绘制路径16.3.5案例:绘制曲线16.3.6案例:设计画板16.4小结7章动画设计视频讲解:14分钟17.1OpenGL ES17.1.1OpenGL ES概述17.1.2配置上下文17.1.3OpenGL ES绘制17.2OpenGL ES应用17.2.1项目的创建及设置17.2.2上下文的创建17.2.3渲染缓存的创建17.2.4帧缓存的创建17.2.5屏幕的清理17.2.6OpenGLView和应用程序委托关联17.3Core Animation17.3.1层和变换17.3.2树层结构17.3.3层上下文和层行为17.3.4动画17.3.5事务17.3.6动画层布局17.4案例实战17.4.1案例:设计过渡动画17.4.2案例:设计属性动画17.4.3案例:设计路径动画17.5小结8章多媒体开发视频讲解:26分钟18.1使用声音18.1.1音频编解码18.1.2音频回放和录制格式18.1.3音频会话18.1.4播放音频18.1.5通过iPod媒体库访问接口播放媒体项18.1.6使用系统声音服务播放短声音及触发震动18.1.7通过AVAudioPlayer类轻松播放声音18.1.8用音频队列服务播放和控制声音18.1.9创建一个音频队列对象18.1.10控制回放音量18.1.11指示回放音量18.1.12同时播放多路声音18.1.13使用OpenAL播放和定位声音18.1.14录制音频18.1.15解析音频流18.1.16iOS系统上的音频单支持18.1.17iPhone音频的最佳实践18.2使用视频18.2.1录制视频18.2.2播放视频文件18.3案例实战18.3.1案例:播放音效18.3.2案例:播放音乐18.3.3案例:播放视频18.3.4案例:录制音频18.3.5案例:录制视频18.4小结9章设备管理视频讲解:28分钟19.1硬件检测19.2配件通信19.2.1配件基础19.2.2声明协议19.2.3连接配件19.2.4监控配件19.3使用加速计19.3.1选择更新频率19.3.2分离重力数据19.3.3分离实时运动数据19.3.4获取设备方向19.4使用位置和方向19.4.1获取当前位置19.4.2获取方向事件19.5使用地图19.5.1添加地图视图19.5.2缩放和移动地图19.5.3显示用户当前位置19.5.4坐标和像素切换19.5.5显示注解19.5.6添加和移除注解对象19.5.7定义注解视图19.5.8创建注解视图19.5.9处理注解视图中的事件19.5.10获取地标信息19.6使用照相机19.7使用照片库19.8使用邮件19.9案例实战19.9.1案例:管理通信设备19.9.2案例:获取加速度、陀螺仪、磁场数据19.9.3案例:获取移动数据19.9.4案例:获取位置信息19.9.5案例:地图定位19.10小结第20章文件和数据操作视频讲解:24分钟20.1文件操作20.1.1iPhone常用目录20.1.2获取程序目录路径20.1.3文件更新20.1.4文件备份和恢复20.2数据读写20.2.1文件数据的读写20.2.2属性列表数据的读写20.2.3用归档器对数据进行读写20.2.4将数据写到Documents目录20.2.5从Documents目录对数据进行读取20.2.6保存状态信息20.3SQLite20.3.1数据类型20.3.2常用函数及返回编码20.3.3操作数据库20.3.4创建表20.3.5操作数据语句20.3.6数据查询20.4案例实战20.4.1案例:使用属性列表设计备忘录20.4.2案例:使用SQLite设计单词本20.5小结第21章综合案例:抢扑克视频讲解:8分钟21.1设计提示框交互项目21.1.1使用UIAlertView21.1.2保存时间值21.1.3添加图像文件21.2设计时间差视图控制器21.2.1建立NSData、UIImageView对象和IBAction方法21.2.2定义UIAlertView和游戏控件属性21.3构建扑克游戏控件21.3.1添加扑克游戏控件21.3.2设置游戏背景视图检查器21.3.3设置游戏扑克图像检查器21.3.4设置游戏透明按钮检查器21.4小结第22章综合案例:电子琴22.1创建音频工具项目22.1.1设置屏幕横向显示22.1.2添加背景图像和声音文件22.1.3添加音频工具框架22.1.4Audio Toolbox框架的作用22.2定义电子琴的交互方法22.2.1建立音频文件播放方法和播放动态22.2.2定义琴键属性值22.3构建电子琴界面22.3.1设置电子琴视图背景22.3.2添加控件22.3.3设置电子琴背景图检查器22.3.4设置电子琴键的检查器22.4小结第23章综合案例:吃豆人视频讲解:7分钟23.1创建Utility Application图像移动按钮项目23.1.1添加移动图像和声音文件23.1.2添加支持动画和声音文件的框架23.2移动图像操作的视图控制器23.2.1建立UIImageView、按钮方向操作和音频播放方法23.2.2定义图像属性值和方向操作交互23.3在Interface Builder中构建吃豆人主页23.3.1构建吃豆人图像和背景图像23.3.2构建吃豆人移动按钮23.4在Interface Builder中构建吃豆人简介副页23.5小结第24章综合案例:打砖块视频讲解:19分钟24.1创建Utility Application项目24.1.1添加打砖块的图像和声音文件24.1.2添加框架文件24.1.3添加UIImageView控制器24.1.4自定义UIImageView视图检查器24.2打砖块的MainViewController交互方法24.2.1建立游戏分数控件、操作交互和音频播放方法24.2.2定义游戏的操作和属性值24.3在Interface Builder内构建BoardView24.3.1添加NSObject24.3.2设置NSObject身份24.4在Interface Builder中构建打砖块游戏主页24.5在Interface Builder中构建打砖块简介副页24.6小结

内容简介

《iOS开发从入门到精通》一书以iOS 9.0、Xcode 6.4为平台,全面介绍了iOS应用开发的基础知识。掌握Objective-C语言是iOS应用开发的基础,全书从Objective-C基本语法开始,详细讲解了Objective-C语法结构、Objective-C面向对象特征、Foundation核心类库用法,iOS应用开发的基本理论,以及iOS应用和编程技巧,主要包括iOS应用核心、窗口和视图、事件处理、视图控制器绘图、文件、SQLite、数据处理、网络、多媒体、设备支持、游戏开发等内容。本书还提供了很多开发应用案例,模仿练习这些案例,能够帮助用户快速地找到实战的感觉。《iOS开发从入门到精通》内容翔实、结构清晰、循序渐进,基础知识与案例实战紧密结合,既可作为iOS初学者的入门教材,也适合中不错用户对新技术做进一步的学习和参考。

13.1.3事件传递系统将事件按照特定的路径传递给可以对其进行处理的对象。例如,当用户触摸设备屏幕时,iOS会将其识别为一组触摸对象,并将它们封装在一个UIEvent对象中,放入当前应用程序的事件队列。事件对象将特定时刻的多点触摸序列封装为一些触摸对象。负责管理应用程序的UIApplication应用对象将事件从队列的顶部取出,然后派发给其他对象进行处理。典型情况下,它会将事件发送给应用程序的焦点窗口,然后代表该窗口的UIWindow对象再将其发送给响应者进行处理。应用程序通过触碰测试(hit-testing)寻找事件的响应者,即通过递归调用视图层次中视图对象的hitTest:withEvent:方法确认发生触摸的子视图。触摸对象的整个生命周期都和该视图互相关联,即使触摸动作很终移动到该视图区域之外也是如此。UIAppli......

前 言: 随着4G网络和移动互联网技术的普及,以苹果iOS为代表的移动应用开发方兴未艾。苹果应用商店影响着各行各业,拥有超过30万个应用可供用户随意,每天有成百上千的iOS开发者跟随潮流,各种新奇的应用不断涌现,商店中造就了很多富翁,如果您真的有意从事iOS开发,并想通过好的软件设计让开发工作更加高效,那么就应该阅读本书。学习新的编程语言绝非易事,一旦学会开发iOS应用程序,就很容易被它优美的设计和结构所打动。这种优美来自设计者的深思熟虑,通过把各种为人熟知或不为人知的设计模式应用到框架的各种基础结构之中,为开发者提供了很好的可扩展性与灵活性。对于一个多年奋战在移动应用开发线的人来说,iOS开发是一个全新的领域。本书旨在成为iOS开发的权威指南,引导读者了解如何在iOS平台上以Objective-C语言实现开发。本书特色@系统的基础知识全书兼顾理论和技术,以......