【移动应用开发技术】疯狂iOS 讲义(上) Objective-C 2.0与iPhoneiPad应用开发基础_第1页
【移动应用开发技术】疯狂iOS 讲义(上) Objective-C 2.0与iPhoneiPad应用开发基础_第2页
【移动应用开发技术】疯狂iOS 讲义(上) Objective-C 2.0与iPhoneiPad应用开发基础_第3页
【移动应用开发技术】疯狂iOS 讲义(上) Objective-C 2.0与iPhoneiPad应用开发基础_第4页
【移动应用开发技术】疯狂iOS 讲义(上) Objective-C 2.0与iPhoneiPad应用开发基础_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】疯狂iOS讲义(上)Objective-C2.0与iPhoneiPad应用开发基础

疯狂iOS讲义(上)Objective-C2.0与iPhone/iPad应用开发基础(国内首部iOS7相关著作,小伙伴们,学好iPhone/iPad应用开发,我们一起做土豪吧)李刚编ISBN978-7-121-19107-72014年1月出版定价:99.00元684页16开编辑推荐内容最详尽的iOS7平台iPhone/iPad应用开发指引获奖无数的疯狂讲义系列最新作品密集的代码注释,帮你读懂代码、领悟真谛内有“疯狂连连看”等案例的完整实现内容提要本书以最新的iOS7.0、Xcode5为平台,全面介绍iOS应用开发的基础知识。全书从Objective-C基本语法开始,详细介绍了Objective-C的基本语法结构、Objective-C的面向对象特征、Foundation框架的核心类库用法、文件I/O体系等知识,掌握Objective-C语言是iOS引用开发的基础。之后,本书将带领读者掌握iOS应用开发的基本理论以及iOS应用的MVC设计和事件处理编程,重点介绍iOS界面编程、iOS应用的生命周期、Quartz2D绘图、坐标变换、CoreImage滤镜、CoreAnimation动画等内容。最后介绍了一个《疯狂连连看》游戏实例。本书并不局限于介绍iOS编程的各种理论知识,而是从“项目驱动”的角度来讲授理论,全书一共包括近百个实例,这些示范性的实例既可帮读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。本书为所有打算深入掌握iOS编程的读者而编写,适合各层次的iOS学习者和开发者阅读,也适合作为大学教育、培训机构的iOS教材。但如果只是想简单涉猎iOS应用开发,则本书过于庞大,不适合阅读。目录第1章iOS应用与开发环境11.1Objective-C与iOS简介21.1.1Objective-C简介21.1.2iOS简介31.2搭建iOS开发环境31.2.1下载并安装Xcode和SDK41.2.2安装辅助工具和文档61.3第一个Objective-C程序61.3.1使用文本编辑器开发Objective-C程序71.3.2使用Xcode工具开发Objective-C程序91.4熟悉Xcode101.4.1创建iOS项目111.4.2熟悉导航面板121.4.3熟悉检查器面板141.4.4熟悉库面板151.4.5使用Xcode的帮助系统171.5小结20第2章数据类型和运算符212.1注释222.2标识符和变量232.2.1分隔符232.2.2标识符规则252.2.3Objective-C关键字252.3数据类型分类252.4基本数据类型262.4.1整型262.4.2NSLog输出函数及格式字符272.4.3字符型292.4.4浮点型302.4.5枚举型312.4.6BOOL类型322.5类型转换342.5.1自动类型转换342.5.2强制类型转化362.5.3表达式类型的自动提升362.6运算符372.6.1算术运算符372.6.2赋值运算符392.6.3位运算符402.6.4扩展后的赋值运算符422.6.5比较运算符422.6.6逻辑运算符432.6.7逗号运算符432.6.8三目运算符442.6.9运算符的结合性和优先级452.7小结46第3章流程控制与数组473.1顺序结构483.2分支结构483.2.1if条件语句483.2.2switch分支语句523.3循环结构543.3.1while循环语句543.3.2dowhile循环语句563.3.3for循环563.3.4嵌套循环593.4控制循环结构603.4.1使用break结束循环613.4.2使用continue结束本次循环613.4.3使用return结束函数623.5goto语句623.6数组643.6.1定义数组643.6.2数组的初始化653.6.3使用数组663.6.4多维数组673.6.5多维数组的初始化683.6.6字符数组、字符串与结束标志733.6.7输出字符串和字符串函数743.6.8数组的应用举例763.7小结78第4章C语言特性794.1函数804.1.1定义函数804.1.2函数声明834.1.3函数的参数传递机制844.1.4递归函数884.1.5数组作为函数参数894.1.6内部函数与外部函数934.2局部变量与全局变量944.2.1局部变量954.2.2全局变量964.2.3外部全局变量与内部全局变量974.2.4动态存储与静态存储994.3预处理1014.3.1使用#define、#undef执行宏定义1014.3.2带参数的宏定义1034.3.3使用#ifdef、#ifndef、#else、#endif执行条件编译1044.3.4使用#if、#elif、#else、#endif执行条件编译1064.3.5#include与#import1074.4指针1084.4.1指针的概念1084.4.2指针变量及其基本用法1094.4.3指针变量作为函数参数1114.5指针与数组1134.5.1指向数组的指针变量1134.5.2指针运算1144.5.3数组变量作为函数参数1164.5.4指向多维数组的指针变量1184.6字符串与指针1214.6.1使用字符指针表示字符串1214.6.2字符指针作为函数参数1224.7函数与指针1234.7.1用函数指针变量调用函数1234.7.2用函数指针变量作为函数参数1244.7.3返回指针的函数1264.8指针数组和指向指针的指针1274.8.1指针数组与main()函数形参1274.8.2指向指针变量的指针1304.9结构体1304.9.1定义结构体1314.9.2typedef语句1334.9.3初始化结构体变量1344.9.4结构体数组1354.10块1364.10.1块的基本语法1364.10.2块与局部变量1374.10.3直接使用块作为参数1394.10.4使用typedef定义块变量类型1394.11小结140第5章面向对象(上)1415.1类和对象1425.1.1定义类1425.1.2对象的产生和使用1465.1.3对象和指针1485.1.4self关键字1505.1.5id类型1535.2方法详解1545.2.1方法的所属性1545.2.2形参个数可变的方法1555.3成员变量1565.3.1成员变量及其运行机制1565.3.2模拟类变量1585.3.3单例(Singleton)模式1595.4隐藏和封装1605.4.1理解封装1615.4.2使用访问控制符1615.4.3理解@package访问控制符1655.4.4合成存取方法1665.4.5使用点语法访问属性1715.5键值编码(KVC)与键值监听(KVO)1725.5.1简单的KVC1725.5.2处理不存在的key1755.5.3处理nil值1765.5.4Key路径1785.5.5键值监听(KVO)1795.6对象初始化1825.6.1为对象分配空间1825.6.2初始化方法与对象初始化1835.6.3便利的初始化方法1855.7类的继承1875.7.1继承的特点1875.7.2重写父类的方法1895.7.3super关键字1905.8多态1935.8.1多态性1935.8.2指针变量的强制类型转换1965.8.3判断指针变量的实际类型1975.9小结198第6章面向对象(下)1996.1Objective-C的包装类2006.1.1它们不是包装类2006.1.2NSValue和NSNumber2016.2处理对象2026.2.1打印对象和description方法2026.2.2==和isEqual方法2056.3类别与扩展2096.3.1类别(category)2106.3.2利用类别对类进行模块化设计2126.3.3使用类别来调用私有方法2126.3.4扩展(extension)2146.4协议(protocol)与委托2166.4.1规范、协议与接口2166.4.2使用类别实现非正式协议2176.4.3正式协议的定义2186.4.4遵守(实现)协议2196.4.5协议与委托(delegate)2226.5使用@try处理异常2256.5.1使用@try...@catch...@finally捕捉异常2266.5.2访问异常信息2286.5.3使用@finally回收资源2296.5.4抛出异常与自定义异常类2306.6Objective-C反射机制2326.6.1获得Class2326.6.2检查继承关系2336.6.3动态调用方法2356.7手动内存管理2376.7.1对象的引用计数2396.7.2对象所属权2416.7.3方法中的保留和释放2436.7.4使用自动释放池2456.7.5自动释放池的销毁时机与工作过程2466.7.6临时对象与事件循环中的自动释放池2486.7.7手动内存管理的规则总结2496.8自动引用计数2506.8.1自动引用计数概述2506.8.2@autoreleasepool块2516.9小结251第7章Foundation框架详解2527.1字符串(NSString与NSMutableString)2537.1.1创建字符串2537.1.2NSString的常用功能2547.1.3可变字符串(NSMutableString)2557.2日期与时间2567.2.1日期与时间(NSDate)2567.2.2日期格式器(NSDateFormatter)2587.2.3日历(NSCalendar)与日期组件(NSDateComponents)2607.2.4定时器(NSTimer)2617.3对象复制2637.3.1copy与mutableCopy方法2637.3.2NSCopying与NSMutableCopy协议2647.3.3浅复制与深复制2667.3.4setter方法的复制选项2687.4Objective-C集合概述2697.5数组(NSArray与NSMutableArray)2707.5.1NSArray的功能与用法2707.5.2对集合元素整体调用方法2757.5.3对NSArray进行排序2767.5.4使用枚举器遍历NSArray集合元素2787.5.5快速枚举(for…in)2797.5.6可变数组(NSMutableArray)2797.5.7NSArray的KVC与KVO2817.6集合(NSSet与NSMutableSet)2827.6.1NSSet的功能与用法2827.6.2NSSet判断集合元素重复的标准2857.6.3NSMutableSet的功能与用法2887.6.4NSCountedSet的功能与用法2897.7有序集合(NSOrderedSet与NSMutableOrderedSet)2907.8字典(NSDictionary与NSMutableDictionary)2917.8.1NSDictionary的功能与用法2927.8.2对NSDictionary的key排序2957.8.3对NSDictionary的key进行过滤2977.8.4使用自定义类作为NSDictionary的key2987.8.5NSMutableDictionary的功能与用法2997.9谓词3017.9.1定义谓词3017.9.2使用谓词过滤集合3027.9.3在谓词中使用占位符参数3037.9.4谓词表达式语法3057.9小结307第8章文件I/O3088.1使用NSData与NSMutableData3098.2使用NSFileManager管理文件和8.2.1访问文件属性和内容3118.2.2创建、删除、移动、复制3128.2.3查看目录包含的内容3138.3使用NSPathUtilities.h管理路径3148.4使用ProcessInfo获取进程信息3168.5使用NSFileHandle处理文件IO3178.6使用NSURL读取网络资源3198.7使用NSBundle处理项目相关资源3208.8对象归档3228.8.1使用NSKeyedArchiver归档3228.8.2实现NSCoding协议3238.8.3使用NSData完成自定义归档3268.8.4使用归档实现深复制3298.9小结330第9章iOS应用开发入门3319.1从iOS项目开始3329.1.1iOS项目包含的文件3329.1.2InterfaceBuilder简介3339.1.3向nib文件添加控件3369.1.4修改控件属性3389.1.5UIView支持的属性3399.1.6UILabel支持的属性3409.2MVC3429.2.1从程序入口开始3429.2.2应用程序委托3439.2.3理解iOS的MVC3469.2.4掌握UIViewController控制器3479.3事件机制3499.3.1程序获取控件的两种方式3499.3.2事件处理的方式3539.4Storyboard的改进之处3589.5代码控制UI界面3609.5.1不使用界面布局文件开发UI界面360实例:×××面布局文件开发iOS应用3609.5.2使用代码创建UI界面362实例:动态添加、删除标签3629.4.3自定义UI控件364实例:跟随手指运动的小球3659.6美化iOS应用3679.5.1定制iOS应用图标3679.5.2设置iOS应用的启动画面3679.6小结369第10章iOS应用的界面编程37010.1UI控件概述37110.1.1活动、静态和被动控件37110.1.2UIControl基类介绍37210.2按钮(UIButton)373实例:丰富多彩的按钮37610.3文本框(UITextField)377实例:用户登录界面37910.3.1完成输入后关闭键盘38010.3.2触碰背景关闭键盘38110.4多行文本控件(UITextView)38210.4.1UIScrollView支持的属性38310.4.2使用委托对象处理UITextView事件385实例:导航按钮关闭虚拟键盘385实例:自定义键盘附件关闭虚拟键盘38710.4.3自定义选择内容后的菜单38910.5开关按钮(UISwitch)390实例:使用开关控制“手电筒”39010.6分段控件(UISegmentedControl)391实例1:通过分段控件控制背景颜色393实例2:动态增加、删除分段39410.7图像控件(UIImageView)395实例1:图片浏览器396实例2:“幻灯片”播放器39810.8进度条39910.8.1UIProgressView399实例:定制进度条40010.8.2UIActivityIndicatorView40110.9拖动条(UISlider)403实例:通过拖动滑块改变图片透明度40410.10警告框(UIAlertView)与UIActionSheet40510.10.1UIAlertView的基本用法40510.10.2带输入框的UIAlertView40710.10.3使用UIActionSheet40910.11日期选择器(UIDatePicker)411实例:倒计时器41310.12选择器(UIPickerView)41510.12.1单列选择器41610.12.2多列选择器41710.12.3相互依赖的多列选择器41910.12.4自定义选择器视图421实例:“×××”游戏42110.13微调器(UIStepper)42610.14网页控件(UIWebView)428实例:迷你浏览器43010.15工具条(UIToolbar)431实例:自定义工具条控件43310.16表格(UITableView)与表格控制器(UITableViewController)43510.16.1简单表格43710.16.2处理单元格的选中440实例:编辑选中行44110.16.3定制表格行446实例1:继承UITableViewCell定制表格行446实例2:使用动态单元格原型定制表格行449实例3:利用xib文件定制表格行45110.16.4编辑表格45410.16.5多分区表格以及分区索引45910.16.6直接使用UITableViewController46110.16.7静态单元格46410.16.8使用iOS6新增的UIRefreshController刷新表格46510.17搜索条(UISearchBar)46710.17.1使用搜索条46810.17.2使用UISearchDisplayController471实例:下拉列表显示搜索结果47110.18导航条(UINavigationBar)与导航条控制器(UINavigationController)47510.18.1使用导航条47510.18.2使用UINavigationController477实例:查看、编辑图书信息47910.18.3使用segue控制过渡48410.18.4使用segue控制导航48710.19网格(UICollectionView)与网格控制器(UICollectionViewController)49010.19.1UICollectionView的功能与用法49210.19.2使用UICollectionViewDelegateFlowLayout定制布局497实例:单元格大小不同的网格49710.19.3扩展UICollectionViewLayout定制布局498实例:环形布局的UICollectionView49910.19.4多分区网格502实例:带页眉、页脚的多分区网格50210.19.5直接使用UICollectionViewController50510.20标签条(UITabBar)与标签页控制器(UITabBarController)50910.20.1使用UITabBar50910.20.2使用UITabBarController51110.20.3在Storyboard中使用UITabBarController51410.21页控件(UIPageControl)与页控制器(UIPageViewController)51510.21.1UIPageControl与UIScrollView结合使用51510.21.2使用UIPageViewController51910.22iPad应用开发52310.22.1使用iPad专用控件:UISplitViewController52310.22.2使用UIPopoverController实现浮动窗口53010.22.3开发同时兼容iPhone与iPad的应用53210.23小结535第11章管理iOS应用的运行53711.1自动旋转机制53811.1.1配置应用支持的方向53811.1.2指定视图控制器支持的方向54011.2旋转时重构用户界面54111.3旋转时切换视图54311.4iOS应用的生命周期54611.4.1应用程序的状态54711.4.2应用程序启动过程54811.4.3程序入口:main函数54911.4.4响应中断55011.4.5进入后台55211.4.6返回前台运行55311.4.7应用程序终止55411.4.8MainRunLoop55411.5小结555第12章图形、图像与动画55612.1使用UIImage和CGImage处理位图55712.1.1显示动画557实例:蝴蝶飞舞55912.1.2CGImage与CGImageRef55912.2Quartz2D绘图56012.2.1Quartz2D绘图基础:CGContextRef56012.2.2绘制几何图形56312.2.3点线模式56512.2.4绘制文本56912.2.5设置阴影57212.2.6使用路径573实例:绘制任意多角星57712.2.7绘制曲线578实例:使用曲线绘制多瓣花朵57912.2.8在内存中绘图580实例:绘图板58312.2.9绘制位图587实例:扩展UIImage的功能58812.3图形变换59312.3.1使用坐标变换59312.3.2坐标变换与路径结合使用594实例:雪花飘飘59412.3.3使用矩阵变换59612.4控制叠加模式59912.5处理填充60412.5.1渐变填充60512.5.2模式填充60912.6使用CoreImage滤镜61412.7动画62112.7.1CoreAnimation动画基础62112.7.2使用CALayer62212.7.3使用CATransition控制过渡动画62512.7.4使用属性动画62912.7.5控制移动路径634实例:绕圈游动的小鱼63412.8小结636第13章疯狂连连看63713.1游戏简介63813.2开发游戏界面63913.2.1开发界面布局63913.2.2开发游戏界面控件63913.2.3处理方块之间的连接线64413.3游戏的状态数据模型64613.3.1定义数据模型64613.3.2初始化游戏状态数据64713.4加载界面的图片65113.5实现游戏视图控制器65313.6实现游戏逻辑65513.6.1定义FKGameService的接口代码65513.6.2实现FKGameService65613.6.3获取触碰点的方块65713.6.4判断两个方块是否可以相连65813.6.5定义获取通道的工具方法65913.6.6没有转折点的横向连接66113.6.7没有转折点的纵向连接66113.6.8一个转折点的连接66213.6.9两个转折点的连接66513.6.10找出最短距离67113.7小结673作者简介李刚,从事10多年的软件行业从业经历,现任疯狂软件教育中心教学总监。51cto专家门诊特邀嘉宾。曾任广州电信、广东龙泉科技等公司的技术培训导师,广东技术师范学院计算机科学系的兼职副教授。培训的学生已在华为、IBM、阿里软件、网易、电信盈科等名企就职。国内著名高端IT技术作家,已出版疯狂体系图书均已得到广泛的市场认同,多次重印成为超级畅销书,并被多所“985”“211”院校选作教材。部分图书已被翻译成繁体中文版、授权到台湾地区。前言移动互联网热潮在全世界引起了巨大反响,移动互联网正在改变着传统互联网的格局,全世界的IT公司争相将业务重心向移动互联网转型,移动互联网业务也成为业内最大的利润增长点。Apple公司的iOS系统作为与Android并驾齐驱的两大操作系统,具有非常完善的生态圈,而且用户具有良好的付费习惯,吸引了大量的专业软件和小团队,甚至包括个人用户。Apple公司提供的AppStore作为应用程序市场,它赋予了缺乏市场运作能力的第三方开发商和草根开发者新的商业机会:开发商和草根开发者只要专注于应用的开发,而市场和销售则交给Apple公司管理。在这种模式下,即使小型团队(甚至个人开发者)也可以创造财富神话。Apple公司在全世界IT行业是一个极富传奇色彩的公司,它一度成为全球市值最大的IT公司,Apple公司的产品对于年轻人始终具有神奇的魔力,尤其是iPhone和iPad两款广为人知的产品,更是让无数追求时尚的年轻人为之痴迷。目前Apple公司也在逐步推出iTV(基于iOS系统的智能电视)、iWatch(智能手表)等各种个人电子消费品,这些产品也吊足了时尚一族的胃口。Apple公司独特的设计、市场运作方式、商业模式和公司经营管理理念,也是众多IT公司竞相研究、模仿的对象。本书是一本介绍iOS应用开发的实用图书,全面介绍了iOS7.0平台上应用开发各方面的知识。与市面上介绍iOS编程的一些图书不同,本书并没有花太多篇幅介绍Apple公司、iOS的发展历史(因为这些内容到处都是),完全没有介绍AppStore(因为它只是一个交易网站,与iOS开发无关,但有些图书甚至用一章内容介绍它)。本书只用了一章来介绍如何搭建iOS开发环境和Xcode工具的用法。全书内容大致可分为两部分。第一部分详细介绍Objective-C这门看似冷门的编程语言——实际上,Objective-C现在非常热门,Objective-C语言目前雄踞编程语言排行第3的位置(前两名是Java、C)。本书在介绍Objective-C基本语法、面向对象语法时没有过多地使用IDE工具,而是带领读者使用最基本的文本编辑器学习编程,使读者真正掌握Objective-C语法。第二部分介绍iOS开发的基础,详细介绍iOS项目的结构、各文件的作用及其调用关系,并归纳了iOS应用的MVC设计、在代码中获取UI控件的3种方式(必须先获取UI控件,然后才可修改它来更新用户界面),以及iOS应用事件处理的3种方式,通过这种方式可以让读者快速掌握iOS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论